python - DEBUG 为 False 时错误处理程序不触发

标签 python flask flask-restful

我正在使用 errorhandlers捕获和处理某些类型的异常:

@app.errorhandler(CustomException)
def handle_custom_exception(error):
    return redirect('redirect-path', code=301)

这在 DEBUGTrue 时正常工作,这也隐式地将 PROPAGATE_EXCEPTIONS 设置为 True。当 DEBUGFalse 时,PROPAGATE_EXCEPTIONS 默认为 False 并且 Flask 返回一个 500对于抛出的所有错误,忽略已注册的 errorhandler。将 PROPAGATE_EXCEPTIONS 设置为 True 可纠正这种情况下的错误处理。

我想知道的是:

  • 在生产中启用 PROPAGATE_EXCEPTIONS 是否安全?有什么我应该担心的副作用吗?

  • 为什么 Flask 在调试和非调试中对此配置有不同的默认值?

最佳答案

你应该添加 app.config['PROPAGATE_EXCEPTIONS'] = True 发生这种情况是因为 flask 覆盖了通常的错误处理代码(对于其控制下的所有路由)。

关于python - DEBUG 为 False 时错误处理程序不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33423580/

相关文章:

python - 我正在重组我的 Flask-restful 应用程序,但在放置 HTTP 身份验证以使应用程序运行时遇到问题

flask - 带有 flask-jwt-extended 的 API 存在身份验证问题?

python - 如何在 dask 中执行分组聚合后保留分区

docker - 如何在生产中在容器内提供 Flask

python - 在不使用字典的情况下用另一个列表的项目替换列表中的项目

python - 有没有办法从 Python Web 服务部分返回结果......?

python - 操作错误 : no such table: entries

python - RESTful-Flask 使用 parse_args() 解析 JSON 数组

python - 替换字符串中的每个第 n 个字母

python - SIGKILL 在一个简单的 python 脚本中添加列