Flask 0.11에는 flask
CLI가 도입되었습니다. 문서와 변경 로그 상태가 모두 권장됩니다.
개발 서버 문서 :
Flask 0.11부터는 개발 서버를 실행하는 여러 가지 기본 제공 방법이 있습니다. 가장 좋은 방법은 플라스크 명령 줄 유틸리티이지만이
Flask.run()
방법을 계속 사용할 수도 있습니다 .커맨드 라인
플라스크 는 우수한 다시로드 경험을 제공하기 때문에 명령 줄 스크립트 (명령 줄 인터페이스)를 강하게 그것으로 인해 응용 프로그램을로드하는 방법을 개발하는 것이 좋습니다. 기본 사용법은 다음과 같습니다.
$ export FLASK_APP=my_application $ export FLASK_DEBUG=1 $ flask run
변경 내역 :
- click CLI 시스템을 통해 로컬 디버그 서버를 시작
flask
하는flask.cli
모듈이 추가되었습니다 .flask.run()
다른 디자인으로 인해 더 빠르고 안정적으로 작동하고 교체 되므로 이전 방법 보다 권장Flask-Script
됩니다.
지금까지 나는이 "우수한 재 장전 경험"을 보지 못했습니다. 사용자 지정 스크립트를 통해 CLI를 사용하는 시점을 알 수 없습니다.
를 사용하는 경우 Flask.run
간단히 파이썬 파일을 작성합니다.
#!/usr/bin/env python3
from my_app import app
if __name__ == '__main__':
app.run(debug=True)
CLI를 사용하는 경우 환경 변수를 지정해야합니다. CLI 문서 activate
에는 virtualenvwrapper 스크립트에 통합 될 수 있다고 언급되어 있습니다 . 개인적으로 나는 이것이 응용 프로그램의 일부라고 생각하고 버전 관리하에 있어야한다고 생각합니다. 아아, 쉘 스크립트가 필요합니다 :
#!/usr/bin/env bash
export FLASK_APP=my_app:app
export FLASK_DEBUG=1
flask run
물론 Windows 사용자가 공동 작업을 시작하자마자 추가 bat 스크립트가 함께 제공됩니다.
또한 첫 번째 옵션은 실제 앱을 시작하기 전에 Python으로 작성된 설정을 허용합니다.
예를 들어
- 파이썬에서 명령 줄 인수를 구문 분석하는 방법
- 앱을 실행하기 전에 로깅을 설정하는 방법
그들은 사용자 정의 명령을 추가 할 수 있다고 홍보하는 것 같습니다. 선택 사항으로 진입 점을 통해 노출되는 간단한 Python 스크립트를 작성하는 것보다 이것이 왜 더 나은지 알 수 없습니다.
Python 실행 스크립트를 사용하여 구성된 로거를 사용할 때 로깅 출력 예 :
$ ./run.py
DEBUG 21:51:22 main.py:95) Configured logging
INFO 21:51:22 _internal.py:87) * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
INFO 21:51:22 _internal.py:87) * Restarting with inotify reloader
DEBUG 21:51:22 main.py:95) Configured logging
WARNING 21:51:22 _internal.py:87) * Debugger is active!
INFO 21:51:22 _internal.py:87) * Debugger pin code: 263-225-431
DEBUG 21:51:25 inotify_buffer.py:61) in-event <InotifyEvent: src_path=b'my_app/main.py', wd=272, mask=IN_MODIFY, cookie=0, name=b'main.py'>
DEBUG 21:51:25 inotify_buffer.py:61) in-event <InotifyEvent: src_path=b'my_app/main.py', wd=272, mask=IN_MODIFY, cookie=0, name=b'main.py'>
INFO 21:51:25 _internal.py:87) * Detected change in 'my_app/main.py', reloading
INFO 21:51:26 _internal.py:87) * Restarting with inotify reloader
DEBUG 21:51:26 main.py:95) Configured logging
WARNING 21:51:26 _internal.py:87) * Debugger is active!
INFO 21:51:26 _internal.py:87) * Debugger pin code: 263-225-431
CLI :를 사용하여 구성된 로거를 사용할 때의 로깅 출력 예 : 프로세스에서 루트 로거를 초기에 충분히 설정할 수 없습니다.
$ ./run.sh
* Serving Flask app "appsemble.api.main:app"
* Forcing debug mode on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with inotify reloader
DEBUG 21:51:33 main.py:95) Configured logging
* Debugger is active!
* Debugger pin code: 187-758-498
DEBUG 21:51:34 main.py:95) Configured logging
DEBUG 21:51:37 inotify_buffer.py:61) in-event <InotifyEvent: src_path=b'my_app/main.py', wd=272, mask=IN_MODIFY, cookie=0, name=b'main.py'>
DEBUG 21:51:37 inotify_buffer.py:61) in-event <InotifyEvent: src_path=b'my_app/main.py', wd=272, mask=IN_MODIFY, cookie=0, name=b'main.py'>
* Detected change in 'my_app/main.py', reloading
INFO 21:51:37 _internal.py:87) * Detected change in 'my_app/main.py', reloading
* Restarting with inotify reloader
INFO 21:51:38 _internal.py:87) * Restarting with inotify reloader
* Debugger is active!
* Debugger pin code: 187-758-498
DEBUG 21:51:38 main.py:95) Configured logging
내 실제 질문은 간단합니다.
플라스크 CLI가 권장되는 이유는 무엇 Flask.run
입니까?