2016-09-22 2 views
1

Ich bin Schnittstelle mit einem internen Protokollierungssystem und ich möchte die aktuelle Antwort status_code von Flask teardown_request Rückruf erhalten: http://flask.pocoo.org/docs/0.11/api/#flask.Flask.teardown_request. Ich mag es, dass es garantiert angerufen wird, und ich kann alle anderen Informationen bekommen, die für meine Zwecke benötigt werden.Wie kann man in Flasks teardown_request auf den status_code der aktuellen Antwort zugreifen?

kann ich die aktuelle Antwort zugreifen und es ist status_code, wenn ich an das request_finished Signal verbinden:

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

request_finished.connect(request_finished_listener) 

Aber ich möchte alle meine Sammlung von Daten innerhalb der teardown_request wenn möglich zu tun.

Antwort

2

Sie können nicht. teardown_request wird als Bereinigung aufgerufen, nachdem die Antwort generiert wurde, hat es keinen Zugriff auf die Antwort. Sie sollten das request_finished Signal oder after_request Decorator verwenden, wenn Sie Zugriff auf die Antwort von Flask benötigen. teardown_request ist nur für die Bereinigung von Ressourcen gedacht.

Wenn Sie etwas über die Antwort protokollieren und absolut nicht request_finished oder after_request verwenden möchten, müssen Sie die Flask App in WSGI-Middleware verpacken.

Verwandte Themen