如何调试 Flask 应用程序

新手上路,请多包涵

你打算如何调试 Flask 中的错误?打印到控制台?向页面发送消息?或者是否有更强大的选项可用于找出出现问题时发生的情况?

原文由 Kimmy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
1 个回答

在调试模式下运行应用程序将在出现错误时在浏览器中显示交互式回溯和控制台。从 Flask 2.2 开始,要在调试模式下运行,请将 --app--debug 选项传递给 flask 命令。

 $ flask --app example --debug run


在 Flask 2.2 之前,这由 FLASK_ENV=development 环境变量控制。您仍然可以使用 FLASK_APPFLASK_DEBUG=1 而不是上面的选项。

对于 Linux、Mac、Windows 的 Linux 子系统、Windows 上的 Git Bash 等:

 $ export FLASK_APP=example
$ export FLASK_DEBUG=1
$ flask run

对于 Windows 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 脚本并像从命令行一样使用它。您可以禁用重新加载程序,但重新加载会终止调试上下文,您将不得不再次捕获断点。

您还可以通过在要开始调试的视图中调用 set_trace 来使用 pdb、pudb 或其他终端调试器。


确保不要使用太宽泛的块除外。用一个包罗万象的 try... except... 包围你的所有代码将使你想要调试的错误消失。通常这是不必要的,因为 Flask 已经通过显示调试器或 500 错误并将回溯打印到控制台来处理异常。

原文由 davidism 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题