什么是请求钩子?说白了,就是在执行视图函数前后你可以进行一些处理,Flask使用装饰器为我们提供了注册通用函数的功能。
- before_first_request:在处理第一个请求前执行
- before_request:在每次请求前执行
- after_request:每次请求之后调用,前提是没有未处理的异常抛出
- teardown_request:每次请求之后调用,即使有未处理的异常抛出
from flask import Flask
app = Flask(__name__)
@app.before_first_request
def before_first_request():
print('before_first_request')
@app.before_request
def before_request():
print('before_request')
@app.after_request
def after_request(resp):
print('after_request')
return resp
@app.teardown_request
def teardown_request(e):
print('teardown_request')
@app.route("/")
def view_fn():
return "view_fn"
if __name__ == "__main__":
app.run()
第一次请求:
页面输出:view_fn
控制台输出: before_first_request
before_request
after_request
teardown_request
第二次请求:
页面输出:view_fn
控制台输出: before_request
after_request
teardown_request
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。