问:
Flask 中 @app.before_request、@app.after_request 和 @app.teardown_request 是拿来做什么的,什么时候应该使用,他们在什么情况下才执行?
@app.before_requestdef before_request():pass@app.after_requestdef after_request():pass@app.teardown_requestdef 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 的时候断开这个连接。
