Я пытаюсь создать промежуточное ПО в flask для хранения запросов и ответов в базе данных. Я могу получить доступ к данным, представленным внутри запроса, но не могу понять, как получить доступ к данным, представленным внутри ответа. Заголовок ответа, показывающий длину содержимого 1000 и, если я его изменяю, показывает различия в длине содержимого.
import pprint
from werkzeug.wrappers import Request, Response
class LoggerMiddleware:
def __init__(self, application):
self.__application = application
def __call__(self, environ, start_response):
errors = environ['wsgi.errors']
length = int(environ.get('CONTENT_LENGTH', '0'))
data = environ['wsgi.input'].read(min(4096, length))
if data:
print(data)
pprint.pprint(('REQUEST', environ), stream=errors)
def _start_response(status, headers, *args):
pprint.pprint(('RESPONSE', status, headers), stream=errors)
return start_response(status, headers, *args)
return self.__application(environ, _start_response)