# 不加返回值
from flask import Flask
from flask abort
app = Flask(__name__)
# 在第一次请求之前调用,可以在此方法内部做一些初始化操作
@app.before_first_request
def before_first_request():
print("第一次请求之前调用")
在每一次请求之前调用,这时候已经有请求了,可能在这个方法里面做请求的校验
# 如果请求的校验不成功,可以直接在此方法中进行响应,直接return之后那么就不会执行视图函数
@app.before_request
before_request1():
前1)
此处如果加上 return "返回值" 就不会执行前2 跟 前 3 直接返回 后1 后2 后3
@app.before_request
before_request2():
前2)
@app.before_request
before_request3():
前3)
在执行完视图函数之后会调用,并且会把视图函数所生成的响应传入,可以在此方法中对响应做最后一步统一的处理
@app.after_request
after_request1(response):
后1)
response.headers["Content-Type"] = "application/json"
return response
@app.after_request
after_request2(response):
后2 response
@app.after_request
after_request3(response):
后3 response
请每一次请求之后都会调用,会接受一个参数,参数是服务器出现的错误信息
@app.teardown_request
teardown_request(e):
请每一次请求之后都会调用,会接受一个参数,参数是服务器出现的错误信息)
@app.route('/')
index():
return index'
if __name__ == __main__:
app.run(debug=True)
## 输出
第一次请求之前调用
"前1
前2
前3
后3
后2
后1
请每一次请求之后都会调用,会接受一个参数,参数是服务器出现的错误信息