본문 바로가기

Back/Python

[Python] Flask 살펴보기


Flask?

 

 

Flask는 파이썬에서 사용가능한 웹프레임워크 중 하나입니다. 개발사에 따르면 '마이크로'프레임 워크이며 이 마이크로는 기능이 적다는 뜻이 아니라, 최소한의 기능만 포함하여 사용자가 원하는대로 가볍게 만들수 있다는 점이라 합니다. 

1. 설치

pip install flask

pip를 통해 간단히 설치 할 수 있습니다.

 

2. 예제.

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run()

Flask 애플리케이션의 가장 기초적인 형태입니다. 

이코드를 실행 할 경우 콘솔창을 통해 아래와 같은 결과를 확인 할 수있습니다.

* Serving Flask app "flask" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

127.0.0.1:5000, loacalhost 5000번 포트를 통해 앱이 실행되었음을 알 수 있습니다. 

 

브라우저로 들어가보면 Hello World! 가 리턴됨을 알수 있습니다.

 

3. 변형

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'


@app.route('/new')
def hello_world2():
    return 'Hello New World!'



if __name__ == '__main__':
    app.run(host = '0.0.0.0',port = 80, debug = True)

@app.route()의 '/' 뒤에 new를 붙였고 함수의 이름을 약간 바꿔주었습니다.

밑의 app.run에는 port를 줘서 포트 번호를 바꾸었습니다. 또한 host를 열어 외부에서도 접근이 가능하도록 하였습니다.

또한 debug=True를 통해 디버그 모드를 켜주었습니다. 디버그 모드 사용시 코드, 환경에 변화가 있을경우 자동적으로 재시작됩니다. 

 

 

주소에 new를 추가하면 return이 바뀌는 것을 볼 수 있습니다.

이렇게 route 뒤로 주소를 추가하고 라우팅 해줍니다.

 

4. URL동적 구성

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'


@app.route('/new')
def hello_world2():
    return 'Hello New World!'

@app.route('/user/<username>')
def show_user_profile(username):
    # show the user profile for that user
    return 'User %s' % username

@app.route('/post/<int:post_id>')
def show_post(post_id):
    # show the post with the given id, the id is an integer
    return 'Post %d' % post_id


if __name__ == '__main__':
        app.run(host = '0.0.0.0',port = 80, debug = True)

 

새로운 루트를 추가합니다. <>안에 변수이름을 정하고 함수로 넘겨줄 경우 함수에 적용할 수 있습니다.

 

각 변수에 맞게 입력하면 return이 변하는 것을확인 할 수 있습니다. 또한 정해진 형식으로 입력하지 않을 경우 에러가 나는것을 볼 수 있습니다.

이 외의 다양한 변화는

flask-docs-kr.readthedocs.io/ko/latest/quickstart.html

 

빠르게 시작하기 — Flask 0.11-dev documentation

웹 어플리케이션에 있어서 클라이언트에서 서버로 보내는 데이타를 처리하는 것은 중요한 일이다. Flask에서 이 정보는 글로벌한 request 객체에 의해 제공된다. 여러분이 파이썬 경험이 있다면,

flask-docs-kr.readthedocs.io

공식 문서를 통해 살펴 볼수 있습니다.