Flask 中 @app.before_request
、@app.after_request
和 @app.teardown_request
是拿来做什么的,什么时候应该使用,他们在什么情况下才执行?
@app.before_request
def before_request():
pass
@app.after_request
def after_request():
pass
@app.teardown_request
def teardown_request():
pass
flask
中又两种context
(上下文),分别是application context
和request context
。其中
request
就是request context
。当 HTTP 请求过来的时候,进入这个上下文。题主的那些方法都是一些
flaks
的hooks
。用于针对request
做一些操作,比如before_request
:在请求收到之前绑定一个函数做一些事情。after_request
: 每一个请求之后绑定一个函数,如果请求没有异常。teardown_request
: 每一个请求之后绑定一个函数,即使遇到了异常。至于用来干嘛?可以做很多关于
request pre
的事情,和request after
的事情。比如,
before_request
的时候创建一个db
连接,然后teardown_request
的时候断开这个连接.