Flask框架从入门到精通之请求钩子(二十二)

知识点: 一、请求钩子python

1、概况

Flask的请求钩子指的是在执行视图函数先后执行的一些函数,咱们能够在这些函数里面作一些操做。Flask利用装饰器给咱们提供了四种钩子函数。数据库

  • before_first_request:在处理第一个请求前执行。好比连接数据库操做
  • before_request:在每次请求前执行。好比权限校验
  • after_request:每次请求以后调用,前提是没有未处理的异常抛出
  • teardown_request:每次请求以后调用,即便有未处理的异常抛出

Flask里面的钩子跟Django里面的中间件相似。json

2、使用

from flask import Flask

app = Flask(__name__)


@app.route('/')
def index():
    print('视图函数执行')
    return 'index page'


# 在第一次请求以前运行.
@app.before_first_request
def before_first_request():
    print('before_first_request')


# 在每一次请求前都会执行
@app.before_request
def before_request():
    print('before_request')


# 在请求以后运行
@app.after_request
def after_request(response):
    # response: 就是前面的请求处理完毕以后, 返回的响应数据,前提是视图函数没有出现异常
    # 若是须要对响应作额外处理,能够再这里进行
    # json.dumps 配置请求钩子
    # response.headers["Content-Type"] = "application/json"
    print('after_request')
    return response


# 不管视图函数是否出现异常,每一次请求以后都会调用,会接受一个参数,参数是服务器出现的错误信息
@app.teardown_request
def teardown_request(error):
    print('teardown_request: error %s' % error)


if __name__ == '__main__':
    app.run(debug=True)
复制代码

咱们在浏览器第一次访问:flask

before_first_request
before_request
视图函数执行
after_request
teardown_request: error None
复制代码

咱们在刷新浏览器试一下:浏览器

before_request
视图函数执行
after_request
teardown_request: error None

复制代码

欢迎关注个人公众号:服务器

image
相关文章
相关标签/搜索