一、视频教程
10_Flask重定向和错误
通过本节课程的学习,你将学会使用redirect重定向到外部网站和内部地址,并且还学会使用abort进行错误处理和自定义错误处理器。《Flask快速入门教程》,人人都能学,小白看得懂学得会,跟我学编程,免费领取配套学习资料。
二、初始代码
Ctrl + C 拷贝 02-start-params,粘贴到 flask-study 目录,然后命名为 07-redirect-abort
三、redirect重定向
前面我们学过渲染模板页面,这个其实是一种内部的转发,浏览器地址栏没有变化。如果我们想重定向到其他页面(浏览器地址栏地址变化),我们可以使用Flask提供的redirect()函数。
重定向外部网页地址:
@app.route('/redirect')
def do_redirect():
return redirect('https://www.baidu.com/')
如果重定向内部地址,可以使用url_for方法:
# 路由route + 视图函数
@app.route('/')
def hello_world():
# 响应:返回给浏览器的数据
return 'Hello World!'
# 重定向到内部地址
@app.route('/redirect/to')
def redirect_to_hello_world():
return redirect(url_for('hello_world'))
四、abort错误处理
Flask提供了一个 abort 函数,用于在视图函数中立即终止请求并返回一个指定的 HTTP 状态码。
@app.route('/abort/<int:id>')
def test_abort(id):
if id != 1:
abort(404) # 返回 404 Not Found
return f'传入值正确:id={id}'
还可以自定义错误处理器,当调用 abort(404) 时,返回的响应将是自定义的消息,而不是默认的 Flask 错误页面。
# 自定义错误处理
@app.errorhandler(404)
def not_found(error):
return "This resource was not found.", 404