旅游网站模块分类,最新房价数据出炉,网站开发页面,网站页面设计基础教程请求钩子是通过装饰器的形式实现#xff0c;Flask支持如下四种请求钩子#xff1a;
1、before_first_request: 在第一次请求处理之前先被执行
2、before_request: 在每次请求前执行
3、after_request: 在每次请求处理之后被执行
接受一个参数#xff1a;视图函数的响应在…请求钩子是通过装饰器的形式实现Flask支持如下四种请求钩子
1、before_first_request: 在第一次请求处理之前先被执行
2、before_request: 在每次请求前执行
3、after_request: 在每次请求处理之后被执行
接受一个参数视图函数的响应在此函数中可以对响应值在返回之前做最后一步修改处理需要将参数中的响应在此参数中进行返回 4、teardown_request: 在每次请求后执行接受一个参数错误信息即服务器出错的信息, 没有错误则为 None需要在非调式模式下运行
#codingutf-8from flask import Flaskapp Flask(__name__)app.route(/testA)
def index1():return welcome helloapp.route(/testB)
def index2():a str(1 / 0)return aapp.before_first_request #在第一次请求处理之前先被执行
def handle_before_first_request():print(before_first_request called)app.before_request #在每次请求处理之前都被执行
def handle_before_request():print(before_request called)app.after_request #在每次请求处理之后被执行
def handle_after_request(response001):print(after_request called)print(response001)return response001app.teardown_request #在每次请求处理之后都被执行有没有异常都执行
def handle_teardown_request(error001):工作在非调试模式下生产模式:param: errors: 服务器出错的信息, 没有错误则为 Noneprint(teardown_request called)print(error001)if __name__ __main__:app.run()分析 1、第一次访问http://127.0.0.1:5000/testA控制台输出
before_first_request called #第一次服务请求前执行结果
before_request called #每次服务请求前执行结果
after_request called #每次请求后执行结果返回视图函数的响应内容如下Response 13 bytes [200 OK]
Response 13 bytes [200 OK]
teardown_request called #在每次请求后执行结果没有错误则返回如下None
None第二次访问http://127.0.0.1:5000/testA控制台输出
before_request called #每次服务请求前执行结果
after_request called 每次请求后执行结果 #每次请求后执行结果返回视图函数的响应内容如下Response 13 bytes [200 OK]
Response 13 bytes [200 OK]
teardown_request called #在每次请求后执行结果没有错误则返回如下None
None2、第一次访问http://127.0.0.1:5000/testB
before_first_request called #第一次服务请求前执行结果
before_request called #每次服务请求前执行结果
after_request called #每次请求后执行结果返回视图函数的响应内容如下Response streamed [500 INTERNAL SERVER ERROR]
Response streamed [500 INTERNAL SERVER ERROR]
teardown_request called 在每次请求后执行结果返回如下错误信息division by zero
division by zero #出错信息