在 Flask 中,你可以使用请求钩子(Request Hooks)来激发请求发送前和发送后的调用。这些请求钩子是特定函数,它们会在请求处理过程中的不同阶段被调用,允许你执行一些额外的操作。

以下是两个主要的请求钩子:

1. before_request: 在请求到达视图函数之前调用。这是执行一些预处理操作的好地方,例如验证用户身份、设置全局变量等。

2. after_request: 在视图函数处理请求后,但在响应发送到客户端之前调用。你可以在这里修改响应对象,添加一些头信息,日志记录等。

下面是一个简单的例子:
from flask import Flask, request

app = Flask(__name__)

@app.before_request
def before_request():
    print("Before Request")
    # 在这里可以执行一些请求前的操作,例如身份验证等

@app.after_request
def after_request(response):
    print("After Request")
    # 在这里可以执行一些请求后的操作,例如添加响应头信息等
    return response

@app.route('/')
def index():
    print("Handling Request")
    return 'Hello, World!'

if __name__ == '__main__':
    app.run()

在这个例子中,before_request 和 after_request 装饰器分别用于注册请求前和请求后的处理函数。这些函数在每次请求发生时都会被调用。

注意,after_request 函数接收一个参数 response,你可以在这里修改响应对象。如果你对响应对象进行了修改,确保最终返回修改后的响应对象。

这些请求钩子允许你在请求处理的不同阶段执行一些通用的操作,从而更灵活地控制和定制 Flask 应用的行为。


转载请注明出处:http://www.zyzy.cn/article/detail/7348/Flask