Flask 请求钩子


flask中具有四种钩子被做成了修饰器,我们在后端可以进行调用做相关的操作.

before_first_request

功能:

  • 只在第一个请求之前调用,第一个请求之后不再调用。
  • 可以在里面进行数据库的连接操作等
@app.route('/')
def index():
	print('哈哈哈哈')
    return '哈哈哈'


@app.before_first_request
def before_first_request():
    print('这是第一个钩子, 只在第一个请求之前调用,第一个请求之后不再调用')

效果:
在这里插入图片描述

before_request

注意点:

  1. 在每次请求的之前调用
  2. 在调用的时候不需要传递参数
  3. 里面不能加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 查看本文章

猜你喜欢

转载自blog.csdn.net/dakengbi/article/details/94437972