什么是请求钩子?说白了,就是在执行视图函数前后你可以进行一些处理,Flask使用装饰器为我们提供了注册通用函数的功能。
- before_first_request:在处理第一个请求前执行
- before_request:在每次请求前执行
- after_request:每次请求之后调用,前提是没有未处理的异常抛出
- teardown_request:每次请求之后调用,即使有未处理的异常抛出
from flask import Flaskapp = Flask(__name__)@app.before_first_requestdef before_first_request(): print('before_first_request')@app.before_requestdef before_request(): print('before_request')@app.after_requestdef after_request(resp): print('after_request') return resp@app.teardown_requestdef 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