3

什么是请求钩子?说白了,就是在执行视图函数前后你可以进行一些处理,Flask使用装饰器为我们提供了注册通用函数的功能。

  1. before_first_request:在处理第一个请求前执行
  2. before_request:在每次请求前执行
  3. after_request:每次请求之后调用,前提是没有未处理的异常抛出
  4. teardown_request:每次请求之后调用,即使有未处理的异常抛出
from flask import Flask
app = Flask(__name__)

@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(resp):
    print('after_request')
    return resp


@app.teardown_request
def teardown_request(e):
    print('teardown_request')


@app.route("/")
def view_fn():
    return "view_fn"
    
if __name__ == "__main__":
    app.run()

第一次请求:

页面输出:view_fn
控制台输出: before_first_request
            before_request
            after_request
            teardown_request

第二次请求:

页面输出:view_fn
控制台输出: before_request
            after_request
            teardown_request

二十一
1.4k 声望867 粉丝

无论遇到多大的困难,你总是能扛过去,坚持一件事,对自己