데이터과학 삼학년

flask 기초 본문

Web

flask 기초

Dan-k 2020. 1. 13. 16:17
반응형

flask를 이용하여 web을 만들어보자.

기초 1편

hello flask 출력해보기

flask 라이브러리를 다운받고!

 

1. 기초

from flask import Flask
app = Flask(__name__)
 
@app.route('/')
def hello_world():
    return 'Hello flask! man'
 
if __name__ == '__main__':
    app.run(host='0.0.0.0',debug=True,port=5001)

app.run(host=''0.0.0.0') 으로 입력하면 해당 서버의 ip로 host가 설정된다. 즉 외부에서도 접근 가능하게 됨

위 파일을 실행시키면

이런 화면이 나오고

저 아래 주소를 따라가면 web 에 Hello flask! man 이라는 문구가 뙇 찍히게 된다.

 

어렵군..

flask를 활용하여 web을 만들려면 기본적으로 html, css 에 대한 지식은 있어야 함...허허허

 

2. URI를 활용하여 변수 적용하기

from flask import Flask

app = Flask(__name__)

@app.route('/user/<username>')
def hello_user(username):
    return 'hello' + username

@app.route('/')
@app.route('/<int:worldno>/<feature>')
def inputTest(worldno=None, feature=None):
    return render_template('base.html', worldno=worldno, feature=feature)
    
## int로 변수를 받을때는 반드시 <int: 변수명> 으로 입력해줘야함

3. 특정 함수를 호출하여 적용하기

url_for를 이용하여 원하는 함수를 불러오고, 변수를 넣어줄수 있음

from flask import Flask, url_for

app = Flask(__name__)

@app.route("/hello/")
def hello():                           
    return "Hello World"

@app.route("/profile/<username>")
def get_profile(username):
    return "profile: " + username

if __name__ == "__main__":              
    with app.test_request_context():
        print(url_for('hello'))
        print(url_for('get_profile', username='flash'))
        
      
### url_for 함수를 활용하여, 원하는 함수에 argument를 넣어줄 수 있음

4. REST API를 이용하여 data 보여주기

from flask import Flask, jsonify
app = Flask(__name__)

@app.route('/json_test')
def hello_json():
    data = {'name' : 'Aaron', 'family' : 'Byun'}
    return jsonify(data)

@app.route('/server_info')
def server_json():
    data = { 'server_name' : '0.0.0.0', 'server_port' : '8080' }
    return jsonify(data)

 

5. POST, GET method

from flask import Flask, redirect, url_for, request
app = Flask(__name__)

@app.route('/success/<name>')
def success(name):
   return 'welcome %s' % name

@app.route('/login', methods = ['POST', 'GET'])
def login():
   if request.method == 'POST':
      user = request.form['myName']
      return redirect(url_for('success', name=user))
   else:
      user = request.args.get('myName')
      return redirect(url_for('success', name=user))

if __name__ == '__main__':
    app.run(host="0.0.0.0", port=5001)
<!DOCTYPE html>
<html>
   <body>

      <form action = "http://0.0.0.0:8080/login" method = "get">
         <p>Enter Name:</p>
         <p><input type = "text" name = "myName" /></p>
         <p><input type = "submit" value = "submit" /></p>
      </form>

   </body>
</html>

인용 : 잔재미코딩 : https://www.fun-coding.org/flask_basic-2.html

 

728x90
반응형
LIST
Comments