flask中具有四种钩子被做成了修饰器,我们在后端可以进行调用做相关的操作.
before_first_request
功能:
- 只在第一个请求之前调用,第一个请求之后不再调用。
- 可以在里面进行数据库的连接操作等
@app.route('/')
def index():
print('哈哈哈哈')
return '哈哈哈'
@app.before_first_request
def before_first_request():
print('这是第一个钩子, 只在第一个请求之前调用,第一个请求之后不再调用')
效果:
before_request
注意点:
- 在每次请求的之前调用
- 在调用的时候不需要传递参数
- 里面不能加return ,如果加了,其他的视图函数将不会被调用
运用:
- 数据库的连接
- 在session中下载用户的相关信息
@app.before_request
def before_request():
print('第二种请求的钩子, 在每次请求之前调用')
# 如果加了return , 其他的视图函数将不会被调用
效果图:
after_request
注意:
- 如果没有未处理的异常抛出,在每次请求后运行
- 需要一个参数,这个参数实际上为服务器的响应,且函数中需要返回这个响应参数
@app.after_request
def after_request(response):
print('第三种请求的钩子, 如果没有未处理的异常抛出,在每次请求后运行')
print(response) # 返回的是一个Response对象
return response
效果图:
teardown_request
注意:
- 在每次请求后调用,即使有未处理的异常抛出,
- 需要一个参数,这个参数实际上为服务器的响应,且函数中需要返回这个响应参数.
@app.teardown_request
def teardown_request(error):
print('第四种请求的钩子, 在每次请求后调用,即使有未处理的异常抛出')
print('错误信息',error)
return error
效果图:
扫描二维码关注公众号,回复:
6727333 查看本文章