我正在与内部日志记录系统连接,我想从Flask的status_code
回调中获取当前响应的teardown_request
:http://flask.pocoo.org/docs/0.11/api/#flask.Flask.teardown_request。我喜欢它保证被调用,我可以获得我的目的所需的所有其他信息。
我可以访问当前响应,如果我连接到status_code
信号,则为request_finished
:
def request_finished_listener(sender, response):
print(response.status_code)
request_finished.connect(request_finished_listener)
但如果可能的话,我想在teardown_request
内完成我的所有数据收集。
答案 0 :(得分:3)
你做不到。生成响应后,teardown_request
被称为清理,它无权访问响应。如果您需要访问Flask内部的响应,则应使用request_finished
信号或after_request
装饰器。 teardown_request
仅用于清理资源。
如果您需要记录有关响应的内容并且绝对不想使用request_finished
或after_request
,则必须将Flask应用程序包装在WSGI中间件中。