Flask 앱을 디버그하는 방법
플라스크의 오류를 디버깅하려면 어떻게 해야 합니까?콘솔에 인쇄하시겠습니까?페이지에 메시지를 표시하시겠습니까?아니면 뭔가 잘못되었을 때 무슨 일이 일어나는지 파악할 수 있는 더 강력한 옵션이 있습니까?
디버깅 모드에서 앱을 실행하면 오류가 발생할 때 브라우저에 대화형 추적 및 콘솔이 표시됩니다.Flask 2.2 기준으로 디버그 모드에서 실행하려면 다음을 통과합니다.--app그리고.--debug에 대한 옵션flask지휘권
$ flask --app example --debug run
플라스크 2.2 이전 버전에서는 이 기능을 사용자에 의해 제어되었습니다.FLASK_ENV=development대신 환경 변수를 사용합니다.여전히 사용할 수 있습니다.FLASK_APP그리고.FLASK_DEBUG=1위의 옵션 대신에
Linux, Mac, Linux Subsystem for 윈도우즈, Git Bash 등의 경우:
$ export FLASK_APP=example
$ export FLASK_DEBUG=1
$ flask run
윈도우즈 CMD의 경우 다음을 사용합니다.set내보내기 대신:
set FLASK_DEBUG=1
PowerShell의 경우 사용$env:
$env:FLASK_DEBUG = "1"
사용 중인 경우app.run()대신 방법flask run명령, 패스debug=True디버그 모드를 활성화합니다.
추적은 개발 모드에 관계없이 서버를 실행하는 터미널에도 인쇄됩니다.
PyCharm, VS Code 등을 사용하는 경우 디버거를 사용하여 중단점이 있는 코드를 단계적으로 처리할 수 있습니다.실행 구성이 스크립트 호출을 가리킬 수 있습니다.app.run(debug=True, use_reloader=False)또는 그것을 가리킵니다.venv/bin/flask명령줄에서 사용하는 것처럼 스크립트를 작성하고 사용합니다.다시 로드를 사용하지 않도록 설정한 상태로 둘 수 있지만 다시 로드하면 디버깅 컨텍스트가 종료되고 중단점을 다시 잡아야 합니다.
pdb, pudb 또는 다른 터미널 디버거를 호출하여 사용할 수도 있습니다.set_trace디버깅을 시작할 보기에서.
블록을 제외하고 너무 광범위하게 사용하지 마십시오.당신의 모든 코드를 캐치올로 둘러싸기try... except...디버그하려는 오류를 잠재웁니다.플라스크는 디버거나 500 오류를 표시하고 추적을 콘솔에 다시 인쇄하여 예외를 이미 처리하기 때문에 일반적으로 불필요합니다.
사용할 수 있습니다.app.run(debug=True) Werkzeug Debug가 아래에 언급한 것처럼 그것을 실행했고, 제가 알았어야 했습니다.
설명서에서 환경 변수를 셸 프롬프트로 내보내 디버그 모드를 활성화할 수 있습니다.
export FLASK_APP=/daemon/api/views.py # path to app
export FLASK_DEBUG=1
python -m flask run --host=0.0.0.0
또한 플라스크 디버그 도구 모음 확장을 사용하여 렌더링된 페이지에 포함된 자세한 정보를 얻을 수 있습니다.
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
Visual Studio Code를 사용하는 경우 대체
app.run(debug=True)
와 함께
app.run()
내부 디버거를 켜면 VS Code 디버거가 비활성화됩니다.
플라스크 앱을 디버깅하고 싶다면 플라스크 앱이 있는 폴더로 이동하면 됩니다.가상 환경을 활성화하고 "메인 파일 이름"을 플라스크 메인 파일로 변경하여 콘솔에 줄을 붙여넣는 것을 잊지 마십시오.
export FLASK_APP="mainfilename.py"
export FLASK_DEBUG=1
python -m flask run --host=0.0.0.0
플라스크 앱에 대해 디버거를 활성화하면 거의 모든 오류가 콘솔이나 브라우저 창에 인쇄됩니다.무슨 일이 일어나고 있는지 알고 싶다면 간단한 인쇄문을 사용하거나 javascript 코드에 console.log()를 사용할 수 있습니다.
플라스크에서 디버그 모드를 활성화하려면 다음과 같이 입력합니다.set FLASK_DEBUG=1의 신의에CMD창용문, 는또▁windows의 경우export FLASK_DEBUG=1리눅스 터미널에서 앱을 다시 시작하면 바로 시작할 수 있습니다!!
를 설치합니다.python-dotenv가상 환경에서 사용할 수 있습니다.
프로젝트 루트에 .flaskenv를 생성합니다.프로젝트 루트는 app.py 파일이 있는 폴더를 의미합니다.
이 파일 안에 다음과 같이 기록합니다.
FLASK_APP=myapp
FLASK_ENV=development
이제 다음 명령을 실행합니다.
flask run
할 때python app.py flask명령, 통과할 수 있습니다.debug=Trueapp.run.
if __name__ == "__main__":
app.run(debug=True)
$ python app.py
가상 환경 활성화로
export FLASK_DEBUG=true
구성할 수 있습니다.
export FLASK_APP=app.py # run.py
export FLASK_ENV = "development"
시작하기 위해
flask run
결과
* Environment: development
* Debug mode: on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: xxx-xxx-xxx
그리고 만약 당신이 변한다면,
export FLASK_DEBUG=false
* Environment: development
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
Windows 사용자의 경우:
Powershell을 열고 프로젝트 디렉토리에 cd를 넣습니다.
파워셸에서 이 특공대를 사용하면 다른 모든 것들은 파워셸에서 작동하지 않을 것입니다.
$env:FLASK_APP = "app"
$env:FLASK_ENV = "development"
PyCharm Professional을 할 수 .FLASK_DEBUG확인란을 선택합니다.에 가다Run > Edit Configurations선또는생을 합니다.Flask server 및 를 설정합니다.FLASK_DEBUG확인란을 선택합니다.확인을 클릭한 다음 실행 단추를 클릭합니다.
Python-dotenv를 설치할 수 있습니다.pip install python-dotenv그런 다음 생성합니다..flask_env 는또..env은 다음과 file 파일내같습음다니다과.
FLASK_APP=myapp
FLASK_DEBUG=True
언급URL : https://stackoverflow.com/questions/17309889/how-to-debug-a-flask-app
'programing' 카테고리의 다른 글
| 소켓의 차이점은 무엇입니까?IO 및 Firebase? (0) | 2023.06.08 |
|---|---|
| Ruby 클래스가 다른 클래스의 하위 클래스인지 테스트 (0) | 2023.06.08 |
| 요청 본문 유형을 요청과 호환되도록 만드는 방법Initior Body노드 페치를 사용할 때 초기화? (0) | 2023.06.08 |
| 저장 프로시저에서 이 Oracle SQL Developer 아이콘은 무엇을 의미합니까? (0) | 2023.06.08 |
| Android 기본 사항: UI 스레드에서 코드 실행 (0) | 2023.06.03 |