请求扩展
flask请求扩展类似django的请求中间件,又称作钩子方法
before_request
用before_request装饰的函数是执行响应函数之前执行,如果有多个before_request他会自上而下按照顺序执行
如果before_request有返回值,那后面的before_request都不会执行,且响应函数也不会执行
一般我们不会定义返回值在这个钩子方法中
@app.before_request
def before_request():
token = request.headers.get("Authorization")
if not token:
abort(401)
after_request
after_request是响应函数执行之后触发执行的,前提是这次请求没有触发错误,参数代表着返回的响应对象
@app.after_request
def after_request(response):
return response
before_first_request
当flask项目启动后的页面请求的第一次才会执行,第二次不会执行。与浏览器无关,执行顺序是从上往下
可以理解为全局第一次的请求钩子方法,在一次服务启动期间,只可使用一次
@app.before_first_request
def before_first_request():
print("before_first_request")
teardown_request
在每次请求后执行,哪怕出现了错误也会执行,参数代表着抛出的错误
@app.teardown_request
def teardown_request(exception):
print(exception)