Flask出现内部服务器错误而非渲染404

9 投票
3 回答
3815 浏览
提问于 2025-04-17 12:41

在我的Flask应用中,我设置了一个404错误处理器,像这样:

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

但是,当用户访问一个不被识别的链接时,系统却出现了内部服务器错误,而不是显示我的404页面。我是不是漏掉了什么?

3 个回答

0

如果你把调试模式设置为“真”,也会出现这种情况。试着把调试模式改成“假”,看看你的自定义404页面能不能显示出来。

1

可能在显示404页面的时候出现了问题,这导致了内部服务器错误。

我建议你查看一下你应用的日志记录。

8

内部服务器错误是HTTP错误代码500,而不是404,并且你没有为它添加错误处理程序。这种错误发生在服务器无法正确处理客户端的请求时。为了在出现这种错误时显示一个友好的提示信息,你可以像处理404错误那样添加一个errorhandler

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

撰写回答