Flask - 在after_request或teardown_request中访问请求

Lin*_*Lin 12 python flask flask-restful

我想在返回HTTP调用的响应之前能够访问请求对象.我希望通过"teardown_request"和"after_request"访问请求:

from flask import Flask
...
app = Flask(__name__, instance_relative_config=True)
...

@app.before_request
def before_request():
    # do something

@app.after_request
def after_request(response):
    # get the request object somehow
    do_something_based_on_the_request_endpoint(request)

@app.teardown_request
def teardown_request(response):
    # get the request object somehow
    do_something_based_on_the_request_endpoint(request)
Run Code Online (Sandbox Code Playgroud)

我看到我可以将请求添加到g并执行以下操作:

g.curr_request = request

@app.after_request
def after_request(response):
    # get the request object somehow
    do_something_based_on_the_request_endpoint(g.curr_request)
Run Code Online (Sandbox Code Playgroud)

但上面看起来有点奇怪.我确信有更好的方法来访问请求.

谢谢

Lin*_*Lin 24

解决方案很简单 -

from flask import request

@app.after_request
def after_request(response):
    do_something_based_on_the_request_endpoint(request)
    return response
Run Code Online (Sandbox Code Playgroud)