Flask 配置 404、500 错误页面
一则或许对你有用的小广告
欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于
Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...
,点击查看项目介绍 - 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/
截止目前, 星球 内专栏累计输出 66w+ 字,讲解图 2896+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2300+ 小伙伴加入学习 ,欢迎点击围观
大家好,我是小哈~
本小节中给大家讲下 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
错误页面的视图函数。