IT

Flask 앱을 ​​디버깅하는 방법

lottoking 2020. 8. 30. 09:04
반응형

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

반응형