请求钩子

请求钩子使用修饰器实现,用于在处理请求之前或者之后执行一些代码,例如建立数据库连接或者对用户进行认证。Flask提供了4种请求钩子供使用。

  • @before_first_request,在处理第一个请求之前运行被注册的函数。
  • @before_request,在每次请求之前都运行被注册的函数。
  • @after_request,在每次没有未处理的异常的请求之后都运行被注册的函数。
  • @teardown_request,在每次请求之后运行被注册的函数,即便是请求抛出了未处理的异常。

请求钩子函数和视图函数之间共享数据一般使用上下文全局变量g。钩子函数可以直接取消请求或者直接返回响应内容,例如认证失败。