如何使用flask的 @app.after_request 装饰器
@app.after_request
是 Flask 中的一个装饰器,可以用来注册一个函数,在每次请求处理之后执行。这个装饰器可以用来实现一些通用的功能,比如记录请求日志、设置响应头等。
以下是一个示例
在这个示例中,@app.after_request
装饰器注册了一个名为 after_request 的函数,这个函数会在每次请求处理之后执行。在这个函数中,我们可以进行一些通用的操作,比如设置响应头。
from flask import Flask, jsonify app = Flask(__name__) @app.route('/api/resource') def get_resource(): # 获取资源的逻辑 return {'message': 'Resource found.'} @app.after_request def after_request(response): # 在请求处理之后执行的代码 response.headers['X-Content-Type-Options'] = 'nosniff' return response
在这个示例中,我们设置了一个名为 X-Content-Type-Options 的响应头,这个响应头可以告诉浏览器不要嗅探响应的 MIME 类型。
这个逻辑可以应用于所有的响应,通过 @app.after_request
注解,我们可以避免在每个请求处理函数中都进行一次响应头设置的重复编写。
注意
需要注意的是,@app.after_request 注解的函数需要接受一个 response 参数,这个参数是响应对象。
在函数中,我们可以对响应对象进行修改,然后返回修改后的响应对象。如果不需要对响应对象进行修改,可以直接返回响应对象。