flask常用的请求钩子有四种
- 在第一次请求前的操作 before_first_request
before_first_request 没有参数也没有返回值
@app.before_first_request
def before_first_request():
print("before first request,第一次请求前的操作")
- 在每一次请求前的操作 before_request
before_request 也是没有参数和返回值
@app.before_request
def before_request():
print("before request, 每一次请求前都会执行")
- 每一次请求之后的操作,该钩子有参数和返回值,参数是将要返回的响应对象,在这个钩子里可以对返回的响应对象进行加工,例如添加头信息等,然后将新的响应对象返回。
@app.after_request
def after_request(response):
print("after request,加工响应对象")
return response
- teardown_request 也是在每一次请求之后执行,与after_request不同的是teardown_request 不管请求有没有异常都会执行,teardown_request 有一个参数是接受服务器错误的信息。
@app.teardown_request
def teardown_request(e):
print("teardown_request, 请求之后一定执行")
print(e)
- 调试视图
@app.route('/index')
def index():
return "index"
第一次请求
第二次