Flask는 Werkzeug
와 Jinja2
라이브러리에 의존적이다.
Werkzeug
는 웹어플리케이션과 다양한 서버 사이의 개발과 배포를 위한 표준 파이썬 인터페이스|인 WSGI를 구현한 툴킷이다.
Jinja2
는 HTML 템플릿을 렌더링 하는 템플릿엔진이다.
서로 다른 프로젝트 환경이 독립적으로 실행 환경을 명백하게 가져갈 수 있도록 격리 시키는 방법
$ pip install virtualenv
$ mkdir myproject
$ cd myproject
$ virtualenv venv
$ ./venv/scripts/activate
(venv) PS D:\local\flask-doc>
$ pip install flask
시스템 전체에 설치할 수도 있지만, 독립된 환경으로 설치하기 위해 virtaulenv를 활성화 하여 내부에만 필요 라이브러리를 설치할 예정.
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
이 내용을 run.py (아니면 비슷한 다른 이름) 저장하고 파이썬 인터프리터로 실행한다.
작성한 어플리케이션을
flask.py
로 저장할 경우 Flask 자체와 충돌이나서 실행이 되지 않는다.
(venv) PS D:\local\flask-doc> python .\run.py
* Serving Flask app "run" (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)
* Running on http://127.0.0.1:5000/
만약 외부에서 접근 가능한 서버로 실행시키려고 한다면,
app.run(host='0.0.0.0')
run()
메소드는 수동으로 재시작해야 변경사항이 반영되므로 디버깅시에는
app.debug = True
app.run()
또는
app.run(debug=True)
의 방식으로 디버깅을 활성화 시킨다.