Flask 配置 404、500 错误页面
大家好,我是小哈~
本小节中给大家讲下 Flask 中如何快速配置 400、500 错误页面。
前言
一个 Web 应用中,经常会出现在某个资源由于某种原因被编辑删除,或者 Web 应用内部出现错误的情况,这时,当用户访问时,我们需要给予一个页面反馈,不然用户就会觉得莫名其妙。
配置 404 页面
当用户访问一个不存在、或者已经被删除的页面时,需要响应浏览器 404 错误码,并向用户展示该资源已经丢失页面。
首先,需要在 templates
模板文件夹下创建 404
页面,小哈这里创建了一个简单的 404
页面用作演示。
实际的 Web 应用中,通常是一个样式很好看的
404
页面,可以添加一些炫酷的动画啥的。
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
</head>
<body>
<h1>404:该页面找不到啦!</h1>
</body>
</html>
然后,在 Flask 应用中创建一个用于展示 404
错误页面的视图函数,并为其添加 @app.errorhandler(404)
装饰器,返回值是我们刚刚创建的 404.html
页面,以及 404
错误码:
@app.errorhandler(404)
def show_404_page(e):
return render_template('404.html'), 404
配置成功后,重启 Flask 应用,当访问不存在的 URL 时,就会成功看到该 404
页面啦,比如访问一个不存在的 /quanxiaoha
路由:
配置 500 页面
500
错误页面的展示一般出现在 Web 应用内部出现了某个错误,配置方式和 404
差不多,同样的,先在 templates
模板文件夹下创建一个 500.html
页面用于展示。
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
</head>
<body>
<h1>500:发生了内部错误!</h1>
</body>
</html>
然后,在 Flask 应用中创建一个用于展示 500
错误页面的视图函数:
@app.errorhandler(500)
def show_500_page(e):
return render_template('500.html'), 500
为了验证 500.html
错误页面能够被成功展示,小哈这里定义了一个会导致异常的视图函数:
@app.route('/index')
def index():
# 这行代码执行后,会提示分母不能为零的错误
i = 4 / 0
return render_template('index.html', name='犬小哈教程')
然后,我们访问 /index
URL, 会看到成功展示了 500.html
错误页面:
同时,在 Flask 控制台中确实看到了异常堆栈信息:
ZeroDivisionError: division by zero
说明 Flask 内部捕获了异常,并执行了展示 500
错误页面的视图函数。