flask-请求钩子

发布时间 2023-03-24 15:02:45作者: 小呆呆yy

 

 

 

请求钩子

  • 请求前执行

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()