class Middleware(object):
def __init__(self,old):
self.old = old
def __call__(self, *args, **kwargs):
print("执行call之前")
ret = self.old(*args, **kwargs) #执行app.wsgi_app
print("执行call之后")
return ret
if __name__ == '__main__':
app.wsgi_app = Middleware(app.wsgi_app)
app.run()
- 在flask中,只有执行
app.run()
之后,若有请求来,会执行app.__call__
方法,通过中间件的方法可以在请求来时之前与来临之后,即执行app.__call__
前后执行其他代码,flask当中中间件用得比较少,一般是用特殊的装饰器去完成,请看下篇文章