Flask 调试应用错误

对于生产应用,按照 记录应用错误 中的描述来配置你应用的日志记录和
通知。这个章节讲述了调试部署配置和深入一个功能强大的 Python 调试器的要点。

有疑问时,手动运行

在配置你的应用到生产环境时时遇到了问题?如果你拥有主机的 shell 权限,验证你
是否可以在部署环境中手动用 shell 运行你的应用。确保在同一用户账户下运行配置
好的部署来解决权限问题。你可以使用 Flask 内置的开发服务器并设置 debug=True
这在捕获配置问题的时候非常有效,但是 请确保在可控环境下临时地这么做。 不要
在生产环境中使用 debug=True 运行。

调试器操作

为了深入跟踪代码的执行,Flask 提供了一个方框外的调试器(见 调试模式 )。
如果你想用其它的 Python 调试器,请注意相互的调试器接口。你需要设置下面的参数来
使用你中意的调试器:

  • debug – 是否开启调试模式并捕获异常
  • use_debugger – 是否使用内部的 Flask 调试器
  • use_reloader – 是否在异常时重新载入并创建子进程

debug 必须为 True (即异常必须被捕获)来允许其它的两个选项设置为任何值。

如果你使用 Aptana/Eclipse 来调试,你会需要把 use_debuggeruser_reloader
都设置为 False 。

一个可能有用的配置模式就是在你的 config.yaml 中设置为如下(当然,自行更改为适用
你应用的):

FLASK:
    DEBUG: True
    DEBUG_WITH_APTANA: True

然后在你应用的入口( main.py ),你可以写入下面的内容:

if __name__ == "__main__":
    # To allow aptana to receive errors, set use_debugger=False
    app = create_app(config="config.yaml")

    if app.debug: use_debugger = True
    try:
        # Disable Flask's debugger if external debugger is requested
        use_debugger = not(app.config.get('DEBUG_WITH_APTANA'))
    except:
        pass
    app.run(use_debugger=use_debugger, debug=app.debug,
            use_reloader=use_debugger, host='0.0.0.0')

作者:唐伯虎点蚊香,如若转载,请注明出处:https://www.web176.com/flask2/21726.html

(0)
打赏 支付宝 支付宝 微信 微信
唐伯虎点蚊香的头像唐伯虎点蚊香
上一篇 2023年5月18日
下一篇 2023年5月18日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注