Я думаю, что ответ - нет! Поскольку, например, в django, класс HttpRequest, который имеет атрибут FILES, является словарем и заполняется другими частями фреймворка. Таким образом, этот объект создается и создается django и только унаследован от класса объектов, поэтому это просто словарь.
class HttpRequest(object):
"""A basic HTTP request."""
# The encoding used in GET/POST dicts. None means use default setting.
_encoding = None
_upload_handlers = []
def __init__(self):
# WARNING: The `WSGIRequest` subclass doesn't call `super`.
# Any variable assignment made here should also happen in
# `WSGIRequest.__init__()`.
self.GET = QueryDict(mutable=True)
self.POST = QueryDict(mutable=True)
self.COOKIES = {}
self.META = {}
self.FILES = MultiValueDict()
self.path = ''
self.path_info = ''
self.method = None
self.resolver_match = None
self._post_parse_error = False
self.content_type = None
self.content_params = None
Вы можете увидеть полный исходный код здесь:
https://docs.djangoproject.com/en/1.10/_modules/django/http/request/#HttpRequest
Зачем вам это нужно? В основе WSGI-среды лежат необработанные данные, которые «эквивалентны» сырому PHP в том смысле, что все, что использует WSGI, использует свою среду. – davidism
@davidism Я работаю над библиотекой, в которой будет храниться загруженный файл, и я хочу сделать его общим для всех фреймворков Python. Как я могу получить среду из WSGI во всех средах? – st3fan
Способ, которым обычно обрабатывается, заключается в том, что вы пишете свою библиотеку, а затем записываете расширения для поддерживаемых вами фреймворков. В этом случае вы, скорее всего, не захотите использовать связующее ПО WSGI, так как вам придется самостоятельно анализировать мультипартийное тело, и вам нужно будет не удалять данные, чтобы рамки могли по-прежнему читать их сами по себе. – davidism