和django 的middleware差不多,先before_request 按照顺序执行 然后执行主程序里面的函数,在按照after_request逆序执行,话不多说直接上代码
from flask import Flask
app=Flask(__name__)
@app.before_request
def mid1():
print("请求开始1")
@app.after_request
def res1(respone):
print("请求结束1")
return respone
@app.before_request
def mid2():
print("请求开始2")
@app.after_request
def res2(respone):
print("请求结束2")
return respone
@app.route('/hello',methods=['POST','GET'])
def hello():
print("北京欢迎你 中国欢迎你")
return '<h1>hello world</h1>'
if __name__=='__main__':
app.run()
before_request这个函数也可以写成
@app.before_request
def mid1():
print("请求开始1")
return 'hello dd'
执行的结果很让人意外
网页返回结果
网页前端没问题返回结果,但是中间件执行很奇怪,这样的正常程序都不会这样写,这里也不深纠了,有知道的可以评论