在手机客户端和网络服务器互动的全过程中 ,一些准备工作或红包外挂工作中必须解决,例如:
-
在请求刚开始时,创建连接数据库;
-
在请求刚开始时 ,依据要求开展管理权限校检;
-
在请求完毕时,特定数据信息的互动文件格式;
为了更好地让每一个视图涵数防止撰写反复作用的编码,Flask出示了通用性设定的作用 ,即请求钩子 。
请求钩子是根据装饰器的方式完成 ,Flask适用以下四种请求钩子:
-
before_first_request
-
在解决第一个请求前执行[新项目复位时的钩子]
-
-
before_request
-
在每一次请求前执行
-
假如在某装饰的涵数中回到了一个回应,视图涵数将已不被启用
-
-
after_request
-
要是没有抛出去不正确,在每一次请求后执行
-
接纳一个主要参数:视图涵数做出的回应
-
在这里涵数中能够对响应值在回到以前做最后一步改动解决
-
必须将主要参数中的回应在此参数中开展回到
-
-
teardown_request:
-
在每一次请求后执行
-
接纳一个主要参数:错误报告 ,如果有有关不正确抛出去
-
必须设定flask的配备DEBUG=False,teardown_request才会接纳到出现异常目标。
-
from flask import Flask,make_response app = Flask(__name__) @app.before_first_request def first_request(): print("1. 新项目起动之后,初次被请求时 ,会全自动执行[新项目全局性复位工作中]") @app.before_request def before_request(): print("2. 每一次手机客户端请求时,都是会全自动执行, 常见于纪录浏览系统日志,开展管理权限分辨 ,身份核查,浏览过流保护...") @app.after_request def after_request(response): #来源于视图的返回值response print("4. 每一次视图执行之后,会全自动执行") # after_request执行之后 ,务必要回到結果给手机客户端!! return response @app.teardown_request def teardown_request(exc): print("5. after_request进行之后,如果有产生出现异常,在关掉DEBUG方式的状况下能够接纳出现异常目标 ,开展出现异常的纪录 ,出现异常通告") print(exc) @app.route("/") def set_session(): print("3. 视图执行了.......") 1/0 #为了更好地检测teardown_request,出错 return "ok" if __name__ == '__main__': app.run(debug=False)