文章目录

当请求错误时,我们需要有一个页面来显示一些错误信息告诉我们发生了什么错误。Flask中还有一个abort()函数用来处理错误,返回一个显示相应错误消息的页面。以下是一个例子:

1
2
3
@app.route('/')
def index():
abort(400)

当我们访问http://127.0.0.1:5000/ 时,就会自动返回一个显示400错误消息的页面,这个页面是这样的:

它告诉了我们浏览器发送了一个服务器无法理解的请求。

可是这个页面有点丑,我们可以自定义错误页面。这也是这一小节想说的,前面的都是铺垫啊铺垫。

首先,我们来添加两个处理错误的路由,打开hello.py,加入代码如下:

1
2
3
4
5
6
7
8
9
10
#...

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

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

1.这两个路由都用到了实例app里的errorhandler()装饰器,这个函数接受数字状态码作参数,来处理相应的错误。
2.第一个路由用来处理404错误,当客户端请求未知页面或路由时显示。
3.第二个路由用来处理500错误,当有未处理的异常时显示。

那么,现在我们来自己编写这两个错误页面吧。
进入templates文件夹,创建404.html,输入如下代码:

1
<h1>404 Page Not Found</h1>

再创建500.html,输入如下代码:

1
<h1>500 Internal Server Error</h1>

现在我们来试一试看看。运行程序,请求一个不存在的URl,例如输入http://127.0.0.1:5000/hello , 就会看到:

我们自定义的错误页面显示出来了!!

可是这个错误页面也还是丑,没关系,之后会写得好看一点的~

Last: Flask学习教程 Part1 3.1:用Jinja2渲染模板
Next: Flask学习教程 Part1 3.3:(强大的)模板继承

文章目录