前言
在逛淘宝、京东等大型网站的时候,有时候操作失误就会弹出错误界面,你会发现他们的错误界面很美观,不像系统自带的错误页面。
那么flask是否也可以实现自定义错误页面呢?答案是可以的,现在让我们来看一下。
一、环境
python 3.7
flask 2.0.2
二、步骤
本篇博客代码接着上篇博客flask操作数据库继续写,文件目录如下
1.自定义404错误页
当页面找不到的时候,会报404错误,先编写自己的404错误页,在templates文件夹下创建一个error文件夹,再创建一个自定义的404页面:
404.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!--禁止页面缩放-->
<meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" charset="UTF-8">
<title>404</title>
<style>
* {
padding: 0;
margin: 0;
}
img {
width: 100%;
height: 100%;
}
</style>
</head>
<body>
<img src="../../static/error/404.jpeg">
</body>
</html>
2.捕抓404错误
只需要捕抓到404错误后并返回对应的页面即可,在manage.py里面设置
from flask import render_template
from flask_script import Manager, Server
from flask_migrate import Migrate, MigrateCommand
# 这里的models必须引入,否则无法创建表
from flask_teach import create_app, db, models, error
# 调用create_app()函数创建app
app = create_app()
# 通过Manager类创建manager对象,关联app
manager = Manager(app)
# 使用Migrate,关联db,app
Migrate(app, db)
# 给manager添加一条操作命令
manager.add_command('db', MigrateCommand)
# 解决响应慢的问题
manager.add_command('runserver', Server(threaded=True))
# 加了这段代码
@app.errorhandler(404)
def ERROR_404(e):
# e参数不能少,少了会报错
return render_template('error/404.html')
if __name__ == '__main__':
manager.run()
运行
故意输入一个不存在的网站,会有如下结果:
大功告成!!其他类型的错也可以照葫芦画瓢,有什么问题欢迎在评论区留言。
下一章:flask使用装饰器