Flask 앱을 디버깅하는 방법
Flask에서 오류를 발생하는 방법은 무엇입니까? 콘솔로 인쇄 하시겠습니까? 페이지에 플래시 메시지? 어떤 일이 일어나고 있는지 알아낼 수있는 더 강력한 옵션이 있습니까?
개발 모드에서 앱을 실행하면 오류가있을 때 브라우저에 대화 형 트레이스 백 및 콘솔이 표시됩니다. 개발 모드에서 실행 광고주 FLASK_ENV=development
환경 변수를 설정 한 다음 flask run
명령 을 사용합니다 ( FLASK_APP
앱도 가리킴).
Linux, Mac, Windows 용 Linux 하위 시스템, Windows의 Git Bash 등 :
export FLASK_APP=myapp
export FLASK_ENV=development
flask run
Windows CMD set
의 경우 내보내기 대신 사용 :
set FLASK_ENV=development
PowerShell의 경우 다음을 사용하십시오 $env
.
$env:FLASK_ENV = "development"
Flask 1.0 이전에는 FLASK_DEBUG=1
대신 환경 변수에 의해 제어 .
명령 app.run()
대신 메서드를 사용하는 경우 flask run
전달 debug=True
하여 디버그 모드를 활성화합니다.
트레이스 백은 개발 모드에 관계없이 서버를 실행하는 터미널에도 인쇄됩니다.
PyCharm, VS Code 등을 사용하는 경우 디버거를 활용하여 중단 점으로 코드를 단계별로 사용할 수 있습니다. 실행 구성은 호출하는 app.run(debug=True, use_reloader=False)
펼치기 를 가리 키 거나 펼쳐를 가리키고 venv/bin/flask
명령 줄에서 사용하는 것처럼 사용할 수 있습니다. 리 로더를 중단 한 상태로 둘 수 있습니다 다시로드하면 즉시가 종료되고 중단 점을 다시해야합니다.
set_trace
시작을 시작할 뷰에서 호출하여 pdb, pudb 또는 다른 터미널 디버거를 사용할 수도 있습니다 .
사용하지 않고 사용하지 않습니다. 모든 코드를 포괄로만면 수행 try... except...
하려는 오류가 사라집니다. 일반적으로 Flask는 디버거 또는 500 오류를 표시하고 트레이스 백을 콘솔에 인쇄하여 이미 예외를 처리합니다.
은 사용할 수 당신 있습니다 app.run(debug=True)
에, 대한 WERKZEUG 디버거 편집 아래에 언급 한 바와 같이, 나는 알고 있어야합니다.
로부터 0.11
문서 , 당신은 환경 변수를 내보내기하여 디버그 모드를 활성화 할 수 있습니다 :
export FLASK_APP=/daemon/api/views.py # path to app
export FLASK_DEBUG=1
python -m flask run --host=0.0.0.0
Visual Studio Code를 사용하는 경우
app.run(debug=True)
와
app.run()
내부 디버거를 켜면 VS Code 디버거가 될 때 나타납니다.
Flask Debug Toolbar 확장을 사용하여 더 많은 정보를 사용할 수 있습니다 .
from flask import Flask
from flask_debugtoolbar import DebugToolbarExtension
import logging
app = Flask(__name__)
app.debug = True
app.secret_key = 'development key'
toolbar = DebugToolbarExtension(app)
@app.route('/')
def index():
logging.warning("See this message in Flask Debug Toolbar!")
return "<html><body></body></html>"
다음과 같이 응용 프로그램을 시작합니다.
FLASK_APP=main.py FLASK_DEBUG=1 flask run
flak 앱을 디버그하려면 flask 앱이있는 폴더로 이동하세요. 가상 환경을 활성화하고 콘솔에 "mainfilename"줄을 붙여 넣는 것을 잊지 마세요. "mainfilename"을 flask 기본 파일로 변경합니다.
export FLASK_APP="mainfilename.py"
export FLASK_DEBUG=1
python -m flask run --host=0.0.0.0
플라스크 앱에 디버거를 활성화하면 거의 모든 오류가 콘솔이나 브라우저 창에 인쇄됩니다. 무슨 일이 일어나는지 알아 내고 싶다면 간단한 print 문을 사용하거나 자바 스크립트 코드에 console.log ()를 사용할 수도 있습니다.
빠른 팁-PyCharm을 사용하는 경우 Edit Configurations
=> 로 이동하여 확인란을 Configurations
활성화 FLASK_DEBUG
하고 Run
.
로컬에서 실행 중이고 코드를 단계별로 실행하려는 경우 :
python -m pdb script.py
개발 환경에서 로거 및 인쇄 문을 사용하면 생산 환경의 경우 보초로 갈 수 있습니다.
python-dotenv
가상 환경에 설치 하십시오.
프로젝트 루트에 .flaskenv를 만듭니다. 프로젝트 루트 란 app.py 파일이있는 폴더를 의미합니다.
이 파일 안에 다음을 작성하십시오.
FLASK_APP=myapp
FLASK_ENV=development
이제 다음 명령을 실행하십시오.
flask run
참고 URL : https://stackoverflow.com/questions/17309889/how-to-debug-a-flask-app
'IT' 카테고리의 다른 글
더 나은 Django 관리자 ManyToMany 필드 위젯 (0) | 2020.08.30 |
---|---|
robomongo를 사용하여 Mongodb에서 json을 사용하는 방법 (0) | 2020.08.30 |
시간을 가지고 해싱 (0) | 2020.08.30 |
| = (단일 파이프 같음) 및 & = (단일 앰퍼샌드 같음)의 의미 (0) | 2020.08.30 |
.htaccess의 재 작성 규칙을 적용하기 위해 Apache를 다시 시작해야합니까? (0) | 2020.08.30 |