当前位置: 首页 > 面试题库 >

Python-如何调试Flask应用

章威
2023-03-14
问题内容

你打算如何调试Flask中的错误?打印到控制台?Flash信息到页面?还是有更强大的选项可用来找出出现问题时发生的情况?


问题答案:

出现错误时,以开发模式运行该应用程序将在浏览器中显示交互式回溯和控制台。要在开发模式下运行,请设置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错误并将回溯打印到控制台来处理异常。



 类似资料:
  • 问题内容: 你打算如何调试Flask中的错误?打印到控制台?Flash信息到页面?还是有更强大的选项可用来找出出现问题时发生的情况? 问题答案: 你可以按如下所述app.run(debug=True)用于Werkzeug调试器 编辑,我应该知道。

  • 问题内容: 我一直在为我的应用程序使用nginx / gunicorn和Flask开发新的开发平台。 运维方面,一切正常-我遇到的问题是调试Flask层。当我的代码中有错误时,我只是直接向浏览器返回了500错误,而控制台或日志中没有任何显示。 我已经尝试了许多不同的配置/选项。我想我肯定缺少明显的东西。 我的gunicorn.conf: 乏味的一些Flask代码示例-testserver.py:

  • 没有经过测试的东西都是不完整的 这一箴言的起源已经不可考了,尽管他不是完全正确的,但是仍然离真理 不远。没有测试过的应用将会使得提高现有代码质量很困难,二不测试应用 程序的开发者,会显得特别多疑。如果一个应用拥有自动化测试,那么您就 可以安全的修改然后立刻知道是否有错误。 Flask 提供了一种方法用于测试您的应用,那就是将 Werkzeug 测试 Client 暴露出来,并且为您操作这些内容 的

  • 使用的是 WNMP 的集成环境,服务启用后,如何用 vscode 对 php 代码进行断点调试?之前是使用 PHPStorm 进行断点调试的,想知道 vscode 能否实现类似的断点调试功能

  • 问题内容: 如何调试Node.js服务器应用程序? 现在,我主要使用带有以下打印语句的 警报调试 : 必须有更好的调试方法。我知道GoogleChrome浏览器有一个命令行调试器。该调试器也可用于Node.js吗? 问题答案: 节点检查器可以节省一天!从支持WebSocket的任何浏览器中使用它。断点,事件探查器,实时编码等,这真的很棒。 通过以下方式安装: 然后运行:

  • 问题内容: 我有一个文本文件,发布者(美国证券交易委员会)断言该文本文件以UTF-8编码(https://www.sec.gov/files/aqfs.pdf,第4节)。我正在使用以下代码处理代码行: 我收到以下错误: 鉴于我可能无法回到SEC并告诉他们它们包含的文件似乎未采用UTF-8编码,我应该如何调试和捕获此错误? 我尝试了什么 我对文件进行了十六进制转储,发现有问题的文本是文本``非现金投