要将用户重定向到另一个端点,请使用redirect() 函数;要使用错误代码提前中止请求,请使用以下 abort()功能
重定向示例
from flask import abort, redirect, url_for
@app.route('/')
def index():
return redirect(url_for('login'))
@app.route('/login')
def login():
abort(401)
this_is_never_executed()
当用户访问/url时,通过redirect会跳转到login页面, 而当跳转到login时,由于视图函数存在abort,所以会再次被重定向到401错误页面
默认情况下,每个错误代码都显示一个黑白错误页面。如果要自定义错误页面,可以使用 errorhandler()装饰器
from flask import render_template
@app.errorhandler(404)
def page_not_found(error):
return render_template('page_not_found.html'), 404
注意在render_template之后的404,告诉Flask返回该页面的状态码为404,表示找不到,正常页面返回的状态码为200
讨论区