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)
リクエストを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)
しかし、上記は少し奇妙に思われます。リクエストにアクセスするためのより良い方法があると確信しています。
ありがとう
解決策は簡単です-
from flask import request
@app.after_request
def after_request(response):
do_something_based_on_the_request_endpoint(request)
return response
また、teardown_request(exception)を試してください。これは、「例外があったかどうかに関係なく」実行されます。ドキュメントを確認してください: http://flask.pocoo.org/docs/0.12/api/#flask.Flask.teardown_request