Kim*_*mmy 97 python debugging flask
你是如何在Flask中调试错误的?打印到控制台?Flash消息到页面?或者是否有更强大的选项可以找出出现问题时发生的情况?
dav*_*ism 100
在开发模式下运行应用程序将在出现错误时在浏览器中显示交互式回溯和控制台.要在开发模式下运行,请设置FLASK_ENV=development
环境变量,然后使用该flask run
命令(请记住也指向FLASK_APP
您的应用程序).
对于Linux,Mac,Windows的Linux子系统,Windows上的Git Bash等:
export FLASK_APP=myapp
export FLASK_ENV=development
flask run
Run Code Online (Sandbox Code Playgroud)
对于Windows CMD,请使用set
而不是导出:
set FLASK_ENV=development
Run Code Online (Sandbox Code Playgroud)
对于PowerShell,请使用$env
:
$env:FLASK_ENV = "development"
Run Code Online (Sandbox Code Playgroud)
在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或其他终端调试器.
除了块之外,一定不要使用太宽泛的东西.使用catch-all围绕所有代码try... except...
将使您想要调试的错误无效.一般来说,这是不必要的,因为Flask已经通过显示调试器或500错误并将回溯打印到控制台来处理异常.
bnl*_*cas 28
您可以使用app.run(debug=True)
该WERKZEUG调试器 编辑如下所述,我应该知道.
Édo*_*pez 15
从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
Run Code Online (Sandbox Code Playgroud)
Tus*_*har 11
当运行 aspython app.py
而不是flask
命令时,您可以传递debug=True
给app.run
.
if __name__ == "__main__":
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
$ python app.py
Run Code Online (Sandbox Code Playgroud)
tur*_*ula 10
还可以使用Flask调试工具栏扩展来获取嵌入在呈现页面中的更详细信息.
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>"
Run Code Online (Sandbox Code Playgroud)
启动应用程序如下:
FLASK_APP=main.py FLASK_DEBUG=1 flask run
Run Code Online (Sandbox Code Playgroud)
小智 10
如果您使用的是Visual Studio Code,请替换
app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)
同
app.run()
Run Code Online (Sandbox Code Playgroud)
打开内部调试器时会出现禁用VS Code调试器的情况.
如果要调试flak应用程序,只需转到flask应用程序所在的文件夹,别忘了激活您的虚拟环境并将行粘贴到控制台中,将“ mainfilename”更改为flask main文件。
export FLASK_APP="mainfilename.py"
export FLASK_DEBUG=1
python -m flask run --host=0.0.0.0
Run Code Online (Sandbox Code Playgroud)
启用flask应用程序的调试器后,几乎所有错误都会打印在控制台或浏览器窗口上。如果您想弄清楚是什么,可以使用简单的打印语句,也可以将console.log()用于javascript代码。
python-dotenv
在您的虚拟环境中安装。
在您的项目根目录中创建一个 .flaskenv。通过项目根目录,我的意思是包含您的 app.py 文件的文件夹
在此文件中写入以下内容:
FLASK_APP=myapp
FLASK_ENV=development
Run Code Online (Sandbox Code Playgroud)
现在发出以下命令:
flask run
Run Code Online (Sandbox Code Playgroud)
小智 7
要在 Flask 中激活调试模式,您只需set FLASK_DEBUG=1
在CMD
for windows 或export FLASK_DEBUG=1
Linux 终端上键入,然后重新启动您的应用程序,您就可以开始了!!
小智 6
使用虚拟环境激活
export FLASK_DEBUG=true
Run Code Online (Sandbox Code Playgroud)
你可以配置
export FLASK_APP=app.py # run.py
export FLASK_ENV = "development"
Run Code Online (Sandbox Code Playgroud)
开始
flask run
Run Code Online (Sandbox Code Playgroud)
结果
* 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
Run Code Online (Sandbox Code Playgroud)
如果你改变
export FLASK_DEBUG=false
* Environment: development
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
Run Code Online (Sandbox Code Playgroud)
小智 5
对于 Windows 用户:
打开 Powershell 并 cd 进入您的项目目录。
在 Powershell 中使用这些突击队,所有其他东西在 Powershell 中都不起作用。
$env:FLASK_APP = "app"
$env:FLASK_ENV = "development"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
164262 次 |
最近记录: |