2016-09-22 6 views
1

私は内部ログシステムに接続していますが、現在の応答のstatus_codeをFlaskのteardown_requestコールバック:http://flask.pocoo.org/docs/0.11/api/#flask.Flask.teardown_requestから取得したいと考えています。私はそれが呼び出されることが保証され、私の目的に必要なすべての他の情報を得ることができるのが好きです。Flaskのteardown_requestで現在のレスポンスのstatus_codeにアクセスするには?

私は、現在の応答にアクセスすることができ、私はrequest_finished信号に接続する場合には、status_codeです:

def request_finished_listener(sender, response): 
    print(response.status_code) 

request_finished.connect(request_finished_listener) 

しかし、私は可能であればteardown_request内のすべての私のデータ収集を行うにはしたいと思います。

答えて

2

できません。 teardown_requestは、応答が生成された後のクリーンアップとして呼び出されますが、応答にはアクセスできません。 Flask内からの応答にアクセスする必要がある場合は、request_finishedシグナルまたはafter_requestデコレータを使用する必要があります。 teardown_requestはリソースのクリーンアップのみを目的としています。

あなたが応答について何かをログに記録し、絶対にrequest_finishedまたはafter_requestを使用したくない必要がある場合は、WSGIミドルウェアでフラスコアプリをラップする必要があります。

関連する問題