flask-请求钩子
请求钩子
- 请求前执行
before_first_request只执行一次
before_request每次请求前都执行
- 请求后执行
after_request 请求后执行,没有异常的情况下,需要接收参数,参数为响应对象,此处是什么异常呢?
比如1/0,但是abort()的异常仍然会执行after_request
teardown_request 请求后执行,即使有异常,需要接收参数,参数为异常信息
请求钩子作用
- 请求开始时,建立数据库连接
- 请求开始时,根据需求进行权限校验
- 请求结束时,指定数据的交互格式
1 from flask import Flask,session,abort 2 app = Flask(__name__) 3 @app.route('/') 4 def index(): 5 return '111' 6 7 #只执行一次 8 @app.before_first_request 9 def first_request(): 10 print('before first requset') 11 12 #每次都执行 13 @app.before_request 14 def before_req(): 15 print('before request') 16 17 #必须接收响应对象为参数,出现异常情况下,after_request不执行? 18 #具体指什么异常 19 @app.after_request 20 def after_req(resp): 21 print('after request') 22 return resp 23 #必须接收异常为参数,ji 24 @app.teardown_request 25 def teardown_req(e): 26 print('teardown request') 27 28 if __name__ == '__main__': 29 app.run()