【问题标题】:Flask giving an internal server error instead of rendering 404烧瓶给出内部服务器错误而不是呈现 404
【发布时间】:2012-02-09 14:38:38
【问题描述】:

在我的 Flask 应用程序中,我设置了一个 404 处理程序,如下所示:

@app.errorhandler(404)
def page_not_found(e):
    return render_template('404.html'), 404

但是,当用户访问无法识别的 URL 时,系统会给出内部服务器错误,而不是呈现我的 404 模板。我错过了什么吗?

【问题讨论】:

  • 您是否创建了模板404.html?无论哪种方式,为您的错误发布堆栈跟踪。为您的应用启用调试模式或日志记录,或者如果您使用的是内置开发服务器,则只需检查控制台。
  • 我的错误页面无法正常工作,直到我返回了一个类似“错误 404”的字符串。然后,我编写了“render_template”代码并且工作正常。我不知道让它工作的原因,但你可以试试。

标签: python http-status-code-404 flask


【解决方案1】:

Internal Server Error 是 HTTP 错误 500 而不是 404,并且您尚未为其添加错误处理程序。当服务器无法正确满足客户端请求时会发生这种情况。要在发生此类错误时添加亲切的消息,您可以添加 errorhandler,例如 404。

@app.errorhandler(500)
def exception_handler(e):
    return render_template('500.html'), 500

【讨论】:

    【解决方案2】:

    在渲染 404 模板时可能会出现问题,然后触发内部服务器错误。

    我建议检查您的应用程序的日志。

    【讨论】:

      【解决方案3】:

      如果您将调试设置为 true,也会发生这种情况。尝试将 debug 设置为 false,然后查看您的自定义 404 是否出现。

      【讨论】:

        猜你喜欢
        • 2014-08-06
        • 1970-01-01
        • 2014-08-02
        • 1970-01-01
        • 2020-12-31
        • 2019-04-01
        • 1970-01-01
        • 2012-04-06
        • 2021-03-09
        相关资源
        最近更新 更多