Spec-Zone.ru › Werkzeug

HTTP-утилиты

Werkzeug предоставляет несколько функций для разбора и генерации HTTP-заголовков, которые полезны при реализации WSGI-миддлваров или при работе на более низком уровне. Весь этот функционал также доступен из объектов запроса и ответа.

Функции работы со временем

Эти функции упрощают работу со временем в контексте HTTP. Werkzeug генерирует объекты datetime с учетом часового пояса в UTC. При передаче объектов datetime в Werkzeug, предполагается, что любые объекты datetime без указания часового пояса находятся в UTC.

При сравнении значений datetime из Werkzeug, ваши собственные объекты datetime также должны учитывать часовой пояс, или вы должны сделать значения из Werkzeug не учитывающими часовой пояс.

  • dt = datetime.now(timezone.utc) получает текущее время в UTC.
  • dt = datetime(..., tzinfo=timezone.utc) создает время в UTC.
  • dt = dt.replace(tzinfo=timezone.utc) делает объект без учета часового пояса учитывающим часовой пояс, предполагая, что он в UTC.
  • dt = dt.replace(tzinfo=None) делает объект с учетом часового пояса не учитывающим часовой пояс.
werkzeug.http.parse_date(value)

Разбирает дату в формате RFC 2822 в объект datetime.datetime с учетом часового пояса или None в случае неудачи.

Это обёртка для email.utils.parsedate_to_datetime(). Возвращает None в случае ошибки разбора вместо исключения и всегда возвращает объект datetime с учетом часового пояса. Если в строке нет информации о часовом поясе, предполагается, что это UTC.

Параметры:

value (str | None) – Строка с поддерживаемым форматом даты.

Тип возвращаемого значения:

datetime | None

Изменения

Изменено в версии 2.0: Возвращает объект datetime с учетом часового пояса. Используйте email.utils.parsedate_to_datetime.

werkzeug.http.http_date(timestamp=None)

Форматирует объект datetime или метку времени в строку даты в формате RFC 2822.

Это обёртка для email.utils.format_datetime(). Она предполагает, что объекты datetime без указания часового пояса находятся в UTC, вместо повышения исключения.

Параметры:

timestamp (datetime | date | int | float | struct_time | None) – Объект datetime или метка времени для форматирования. По умолчанию – текущее время.

Тип возвращаемого значения:

str

Изменения

Изменено в версии 2.0: Используйте email.utils.format_datetime. Принимайте объекты date.

Парсинг заголовков

Следующие функции могут быть использованы для парсинга входящих HTTP-заголовков. Поскольку Python не предоставляет структуры данных со семантикой, требуемой RFC 2616, Werkzeug реализует некоторые пользовательские структуры данных, которые документированы отдельно.

werkzeug.http.parse_options_header(value)

Разбирает заголовок, состоящий из значения с key=value параметрами, разделёнными точкой с запятой ;. Например, заголовок Content-Type.

parse_options_header("text/html; charset=UTF-8")
('text/html', {'charset': 'UTF-8'})

parse_options_header("")
("", {})

Это обратное преобразование dump_options_header().

Парсит допустимые части параметров, как описано в RFC 9110. Недопустимые части пропускаются.

Обрабатывает продолжения и кодировки, как описано в RFC 2231, хотя и не так строго, как в RFC. Принимаются только кодировки ASCII, UTF-8 и ISO-8859-1, в противном случае значение остаётся в кавычках.

Клиенты могут не быть последовательными в обработке символа кавычки в строке с кавычками. Стандарт HTML заменяет его на %22 в данных multipart-формы. RFC 9110 использует обратные слэши для экранирования в HTTP-заголовках. Оба кодируются в символ ".

Клиенты могут быть не последовательными в обработке не-ASCII символов. HTML-документы должны объявлять <meta charset=UTF-8>, иначе браузеры могут заменить их на HTML-ссылками символов, которые можно декодировать, используя html.unescape().

Параметры:

value (str | None) – Значение заголовка для парсинга.

Возвращает:

(value, options), где options это словарь.

Тип возвращаемого значения:

tuple[str, dict[str, str]]

Журнал изменений

Изменено в версии 2.3: Недопустимые части, такие как ключи без значения, ключи в кавычках и неправильно записанные значения, отбрасываются вместо обработки как None.

Изменено в версии 2.3: Принимаются только ASCII, UTF-8 и ISO-8859-1 для значений кодировки.

Изменено в версии 2.3: Обрабатываются экранированные кавычки в строках с кавычками, такие как %22 и \".

Изменено в версии 2.2: Имена параметров всегда преобразуются в нижний регистр.

Изменено в версии 2.2: Параметр multiple был удалён.

Изменено в версии 0.15: Обрабатываются продолжения параметров RFC 2231.

Добавлен в версии 0.5.

werkzeug.http.parse_set_header(value, on_update=None)

Разбирает заголовок типа множества и возвращает объект HeaderSet:

>>> hs = parse_set_header('token, "quoted value"')

Возвращаемое значение - объект, который обрабатывает элементы без учёта регистра и сохраняет порядок элементов:

>>> 'TOKEN' in hs
True
>>> hs.index('quoted value')
1
>>> hs
HeaderSet(['token', 'quoted value'])

Для создания заголовка из HeaderSet снова используйте функцию dump_header().

Параметры:
  • value (str | None) – заголовок типа множества для парсинга.
  • on_update (Callable[[HeaderSet], None] | None) – необязательная функция, которая вызывается каждый раз, когда изменяется значение в объекте HeaderSet.
Возвращает:

объект HeaderSet

Тип возвращаемого значения:

HeaderSet

werkzeug.http.parse_list_header(value)

Разбирает значение заголовка, которое представляет собой список элементов, разделённых запятыми, согласно RFC 9110.

Это расширение urllib.request.parse_http_list() для удаления окружающих кавычек из значений.

parse_list_header('token, "quoted value"')
['token', 'quoted value']

Это обратное преобразование функции dump_header().

Параметры:

value (str) – Значение заголовка для парсинга.

Тип возвращаемого значения:

list[str]

werkzeug.http.parse_dict_header(value)

Разбирает заголовок списка с помощью parse_list_header(), затем разбирает каждый элемент как пару key=value.

parse_dict_header('a=b, c="d, e", f')
{"a": "b", "c": "d, e", "f": None}

Это обратное преобразование функции dump_header().

Если ключ не имеет значения, он None.

Обрабатывает кодировки для значений, как описано в RFC 2231. Принимаются только кодировки ASCII, UTF-8 и ISO-8859-1, в противном случае значение остаётся в кавычках.

Параметры:

value (str) – Значение заголовка для парсинга.

Тип возвращаемого значения:

dict[str, str | None]

Журнал изменений

Изменено в версии 3.0: Передача байтов не поддерживается.

Изменено в версии 3.0: Аргумент cls удалён.

Изменено в версии 2.3: Добавлена поддержка key*=charset''value закодированных элементов.

Изменено в версии 0.9: Аргумент cls был добавлен.

werkzeug.http.parse_accept_header(value: str | None) → Accept
werkzeug.http.parse_accept_header(value:str|None, cls:type[_TAnyAccept]) → _TAnyAccept

Разбор заголовка Accept в соответствии с RFC 9110.

Возвращает экземпляр Accept, который может сортировать и проверять элементы на основе параметра качества. При разборе Accept-Charset, Accept-Encoding, или Accept-Language передайте соответствующий подкласс Accept.

Параметры:
  • value – Значение заголовка для разбора.
  • cls – Класс Accept для обертки результата.
Возвращаемое значение:

Экземпляр cls.

Журнал изменений

Изменено в версии 2.3: Разбор в соответствии с RFC 9110. Элементы с недопустимыми значениями q пропускаются.

werkzeug.http.parse_cache_control_header(value: str | None, on_update: Callable[[_CacheControl], None] | None = None) → RequestCacheControl
werkzeug.http.parse_cache_control_header(value:str|None, on_update:Callable[[_CacheControl],None]|None=None, cls:type[_TAnyCC]=None) → _TAnyCC

Разбор заголовка управления кэшем. RFC отличается между кэшированием ответа и запроса, этот метод этого не делает. Вам нужно самостоятельно следить за тем, чтобы использовать правильные инструкции.

Журнал изменений

Добавлен в версии 0.5: Была добавлена cls. Если не указано, возвращается неизменяемый RequestCacheControl.

Параметры:
  • value – заголовок управления кэшем для разбора.
  • on_update – необязаемая функция, которая вызывается каждый раз при изменении значения в объекте CacheControl.
  • cls – класс для возвращаемого объекта. По умолчанию используется RequestCacheControl.
Возвращаемое значение:

объект cls.

werkzeug.http.parse_if_range_header(value)

Разбирает заголовок if-range, который может быть тегом или датой. Возвращает объект IfRange.

Журнал изменений

Изменено в версии 2.0: Если значение представляет дату, она является часо-поясной.

Добавлен в версии 0.7.

Параметры:

value (str | None)

Тип возвращаемого значения:

IfRange

werkzeug.http.parse_range_header(value, make_inclusive=True)

Разбирает заголовок range в объект Range. Если заголовок отсутствует или имеет неверный формат, возвращается None. ranges — список (start, stop) кортежей, где диапазоны не включают граничные значения.

Журнал изменений

Добавлен в версии 0.7.

Параметры:
  • value (str | None)
  • make_inclusive (bool)
Тип возвращаемого значения:

Range | None

werkzeug.http.parse_content_range_header(value, on_update=None)

Разбирает заголовок диапазона в объект ContentRange или None если разбор невозможен.

Журнал изменений

Добавлен в версии 0.7.

Параметры:
  • value (str | None) – заголовок content-range для разбора.
  • on_update (Callable[[ContentRange], None] | None) – необязательная функция, вызываемая каждый раз при изменении значения в объекте ContentRange.
Тип возвращаемого значения:

ContentRange | None

Утилиты для заголовков

Следующие утилиты работают с HTTP-заголовками хорошо, но не анализируют их. Они полезны, если вы работаете с условными ответами или если хотите проксировать произвольные запросы, но хотите удалить не поддерживаемые WSGI заголовки hop-by-hop. Также есть функция для создания строк HTTP-заголовков из обработанных данных.

werkzeug.http.is_entity_header(header)

Проверить, является ли заголовок заголовком сущности.

Журнал изменений

Добавлен в версии 0.5.

Параметры:

заголовок (str) – заголовок для проверки.

Возвращает:

True если это заголовок сущности, False в противном случае.

Тип возвращаемого значения:

bool

werkzeug.http.is_hop_by_hop_header(header)

Проверить, является ли заголовок HTTP/1.1 заголовком «Hop-by-Hop».

Журнал изменений

Добавлен в версии 0.5.

Параметры:

заголовок (str) – заголовок для проверки.

Возвращает:

True если это заголовок HTTP/1.1 «Hop-by-Hop», False в противном случае.

Тип возвращаемого значения:

bool

werkzeug.http.remove_entity_headers(headers, allowed=('expires', 'content-location'))

Удалить все заголовки сущностей из списка или Headers объекта. Эта операция работает на месте. Expires и Content-Location заголовки по умолчанию не удаляются. Причина в том, что RFC 2616 раздел 10.3.5, который определяет некоторые заголовки сущностей, которые должны быть отправлены.

Журнал изменений

Изменено в версии 0.5: добавлено allowed параметр.

Параметры:
  • заголовки (Headers | list[tuple[str, str]]) – список или Headers объект.
  • разрешённые (Iterable[str]) – список заголовков, которые всё ещё должны быть разрешены, даже если они являются заголовками сущностей.
Тип возвращаемого значения:

None

werkzeug.http.remove_hop_by_hop_headers(headers)

Удалить все HTTP/1.1 заголовки «Hop-by-Hop» из списка или Headers объекта. Эта операция работает на месте.

Журнал изменений

Добавлен в версии 0.5.

Параметры:

заголовки (Headers | list[tuple[str, str]]) – список или Headers объект.

Тип возвращаемого значения:

None

werkzeug.http.is_byte_range_valid(start, stop, length)

Проверяет, является ли заданный байтовый диапазон допустимым для заданной длины.

Журнал изменений

Добавлен в версии 0.7.

Параметры:
  • начало (int | None)
  • окончание (int | None)
  • длина (int | None)
Тип возвращаемого значения:

bool

werkzeug.http.quote_header_value(value, allow_token=True)

Добавить двойные кавычки вокруг значения заголовка. Если заголовок содержит только символы ASCII-токенов, он будет возвращен без изменений. Если заголовок содержит " или \ символы, они будут экранированы с добавлением \ символа.

Это обратное unquote_header_value().

Параметры:
  • значение (Any) – значение для цитирования. Будет преобразовано в строку.
  • разрешить_токен (bool) – Отключить цитирование значения, даже если оно содержит только символы токенов.
Тип возвращаемого значения:

str

Журнал изменений

Изменено в версии 3.0: Передача байтов не поддерживается.

Изменено в версии 3.0: Параметр extra_chars удалён.

Изменено в версии 2.3: Значение цитируется, если оно является пустой строкой.

Добавлен в версии 0.5.

werkzeug.http.unquote_header_value(value)

Удалить двойные кавычки и декодировать экранированные с помощью слэша " и \ символы в значении заголовка.

Это обратное quote_header_value().

Параметры:

значение (str) – значение заголовка для декодирования.

Тип возвращаемого значения:

str

Журнал изменений

Изменено в версии 3.0: Параметр is_filename удалён.

END_OF_DOCUMENT_MARKER
werkzeug.http.dump_header(iterable)

Создайте значение заголовка из списка элементов или пар key=value, разделённых запятыми ,.

Это обратное преобразование parse_list_header(), parse_dict_header() и parse_set_header().

Если значение содержит нетокенизируемые символы, оно будет заключено в кавычки.

Если значение None, ключ выводится самостоятельно.

В некоторых ключах для некоторых заголовков значение UTF-8 может быть закодировано с помощью специальной key*=UTF-8''value формы, где value кодируется в процентах. Эта функция не будет автоматически генерировать этот формат, но если заданный ключ заканчивается звёздочкой *, значение предполагается в этом формате и не будет дополнительно заключено в кавычки.

dump_header(["foo", "bar baz"])
'foo, "bar baz"'

dump_header({"foo": "bar baz"})
'foo="bar baz"'
Параметры:

iterable (dict[str, Any] | Iterable[Any]) – Элементы для создания заголовка.

Тип возвращаемого значения:

str

Журнал изменений

Изменено в версии 3.0: Параметр allow_token удалён.

Изменено в версии 2.2.3: Если ключ заканчивается на *, его значение не будет заключено в кавычки.

Куки

werkzeug.http.parse_cookie(header, cls=None)

Разбирает куки из строки или WSGI-среды.

Один и тот же ключ может быть предоставлен несколько раз; значения сохраняются в порядке. По умолчанию MultiDict будет содержать первое значение первым, и все значения могут быть получены с помощью MultiDict.getlist().

Параметры:
  • header (WSGIEnvironment | str | None) – Заголовок куки в виде строки или словарь WSGI-среды с ключом HTTP_COOKIE.
  • cls (type[ds.MultiDict[str, str]] | None) – Класс типа словаря для хранения разобранных куки. По умолчанию MultiDict.
Тип возвращаемого значения:

ds.MultiDict[str, str]

Журнал изменений

Изменено в версии 3.0: Передача байтов, а также параметры charset и errors были удалены.

Изменено в версии 1.0: Возвращает MultiDict вместо TypeConversionDict.

Изменено в версии 0.5: Возвращает TypeConversionDict вместо обычного словаря. Добавлена параметр cls.

werkzeug.http.dump_cookie(key, value='', max_age=None, expires=None, path='/', domain=None, secure=False, httponly=False, sync_expires=True, max_size=4093, samesite=None, partitioned=False)

Создаёт заголовок Set-Cookie без префикса Set-Cookie.

Значение обычно ограничено ASCII, так как большая часть значений должным образом экранирована, но это не гарантия. Оно передаётся через latin1, как требуется PEP 3333.

Значение не является ASCII-безопасным, если ключ содержит символы Юникод. Это технически противоречит спецификации, но встречается в дикой природе. Настоятельно рекомендуется не использовать значения, не являющиеся ASCII, для ключей.

Параметры:
  • max_age (timedelta | int | None) – должно быть числом секунд, или None (по умолчанию), если куки должно действовать только в течение сессии браузера клиента. Также принимаются объекты timedelta.
  • expires (str | datetime | int | float | None) – должен быть объектом datetime или unix-временной меткой.
  • path (str | None) – ограничение куки заданным путём, по умолчанию оно будет распространяться на весь домен.
  • domain (str | None) – Используйте это, если вы хотите установить куки для другого домена. Например, domain="example.com" установит куки, доступные для домена www.example.com, foo.example.com и т. д. В противном случае куки будет доступен только для домена, который его установил.
  • secure (bool) – Куки будет доступен только через HTTPS
  • httponly (bool) – запрещает JavaScript получить доступ к куки. Это расширение стандарта куки и, вероятно, не поддерживается всеми браузерами.
  • charset – кодировка для строковых значений.
  • sync_expires (bool) – автоматически устанавливает expires, если max_age определён, но expires нет.
  • max_size (int) – Выводить предупреждение, если итоговое значение заголовка превышает этот размер. Значение по умолчанию, 4093, должно быть безопасно поддерживаемым большинством браузеров. Установите в 0, чтобы отключить эту проверку.
  • samesite (str | None) – Ограничивает область действия куки таким образом, что она будет прикреплена только к запросам, если эти запросы имеют одинаковый сайт.
  • partitioned (bool) – Разделяет хранение куки. Это также установит secure в True
  • key (str)
  • value (str)
Тип возвращаемого значения:

str

Журнал изменений

Изменено в версии 3.1: Добавлен параметр partitioned.

Изменено в версии 3.0: Передача байтов и параметр charset были удалены.

Изменено в версии 2.3.3: Параметр path установлен по умолчанию в /.

Изменено в версии 2.3.1: Значение допускает больше символов без кавычек.

Изменено в версии 2.3: Разрешены ключи без точки и другие имена без точки для домена. Лидирующая точка игнорируется.

Изменено в версии 2.3: Параметр path установлен по умолчанию в None.

Изменено в версии 1.0.0: Строка 'None' принимается для samesite.

Справочные материалы по условным ответам

Для условных ответов могут быть полезны следующие функции:

werkzeug.http.parse_etags(value)

Разбор заголовка etag.

Параметры:

value (str | None) – заголовок тега для разбора

Возвращаемое значение:

объект ETags.

Тип возвращаемого значения:

ETags

werkzeug.http.quote_etag(etag, weak=False)

Котировка etag.

Параметры:
  • etag (str) – etag для котировки.
  • weak (bool) – установить в True для маркировки как «слабый».
Тип возвращаемого значения:

str

werkzeug.http.unquote_etag(etag: str) → tuple[str, bool]
werkzeug.http.unquote_etag(etag:None) → tuple[None,None]

Раскрытие одного тега etag:

>>> unquote_etag('W/"bar"')
('bar', True)
>>> unquote_etag('"bar"')
('bar', False)
Параметры:

etag – идентификатор тега etag для раскрытия.

Возвращаемое значение:

кортеж (etag, weak).

werkzeug.http.generate_etag(data)

Генерация тега etag для данных.

Журнал изменений

Изменено в версии 2.0: Используется SHA-1. MD5 может быть недоступен в некоторых средах.

Параметры:

data (bytes)

Тип возвращаемого значения:

str

werkzeug.http.is_resource_modified(environ, etag=None, data=None, last_modified=None, ignore_if_range=True)

Удобный метод для условных запросов.

Параметры:
  • environ (WSGIEnvironment) – среда WSGI запроса для проверки.
  • etag (str | None) – etag для ответа для сравнения.
  • data (bytes | None) – или альтернативно данные ответа для автоматической генерации etag с помощью generate_etag().
  • last_modified (datetime | str | None) – необязательная дата последнего изменения.
  • ignore_if_range (bool) – Если False, заголовок If-Range будет учтён.
Возвращаемое значение:

True если ресурс был изменён, в противном случае False.

Тип возвращаемого значения:

bool

Журнал изменений

Изменено в версии 2.0: SHA-1 используется для генерации значения etag для данных. MD5 может быть недоступен в некоторых средах.

Изменено в версии 1.0.0: Проверка выполняется для методов, отличных от GET и HEAD.

Константы

werkzeug.http.HTTP_STATUS_CODES

Словарь пар «код состояния» -> «сообщение состояния» по умолчанию. Он используется оболочками и другими местами, где целое число кода состояния преобразуется в строку в Werkzeug.

END_OF_DOCUMENT_MARKER

Парсинг данных форм

Werkzeug предоставляет функции парсинга форм отдельно от объекта запроса, чтобы вы могли получить доступ к данным формы из обычной WSGI-среды.

В настоящее время парсер данных форм поддерживает следующие форматы:

  • application/x-www-form-urlencoded
  • multipart/form-data

Вложенный multipart пока не поддерживается (Werkzeug 0.9), но он не используется ни одним из современных веб-браузеров.

Пример использования:

>>> from io import BytesIO
>>> from werkzeug.formparser import parse_form_data
>>> data = (
...     b'--foo\r\nContent-Disposition: form-data; name="test"\r\n'
...     b"\r\nHello World!\r\n--foo--"
... )
>>> environ = {
...     "wsgi.input": BytesIO(data),
...     "CONTENT_LENGTH": str(len(data)),
...     "CONTENT_TYPE": "multipart/form-data; boundary=foo",
...     "REQUEST_METHOD": "POST",
... }
>>> stream, form, files = parse_form_data(environ)
>>> stream.read()
b''
>>> form['test']
'Hello World!'
>>> not files
True

Обычно WSGI-среда предоставляется WSGI-шлюзом с поступающими данными в качестве части этой среды. Если вы хотите сгенерировать такие фейковые WSGI-среды для тестирования, вы можете использовать функцию create_environ() или EnvironBuilder.

class werkzeug.formparser.FormDataParser(stream_factory=None, max_form_memory_size=None, max_content_length=None, cls=None, silent=True, *, max_form_parts=None)

Этот класс реализует парсинг данных форм для Werkzeug. Он может парсить multipart и url-кодированные данные форм. Его можно наследовать и расширять, но для большинства MIME-типов лучше использовать поток без изменений и экспонировать его как отдельные атрибуты в объекте запроса.

Параметры:
  • stream_factory (TStreamFactory | None) – Необязательное вызываемое значение, которое возвращает новый потоковый файл для чтения и записи. Это вызываемое значение работает так же, как Response._get_file_stream().
  • max_form_memory_size (int | None) – максимальное количество байтов для хранения данных формы в памяти. Если данные превышают указанное значение, генерируется исключение RequestEntityTooLarge.
  • max_content_length (int | None) – Если это значение задано и переданные данные длиннее, чем это значение, генерируется исключение RequestEntityTooLarge.
  • cls (type[MultiDict[str, t.Any]] | None) – необязательный класс словаря для использования. Если это не указано или None, используется по умолчанию MultiDict.
  • silent (bool) – Если установлено в False, ошибки парсинга не будут перехвачены.
  • max_form_parts (int | None) – Максимальное количество частей multipart для парсинга. Если это значение превышено, генерируется исключение RequestEntityTooLarge.
Изменения

Изменено в версии 3.0: Параметры charset и errors были удалены.

Изменено в версии 3.0: Атрибут parse_functions и методы get_parse_func были удалены.

Изменено в версии 2.2.3: Добавлен параметр max_form_parts.

Добавлен в версии 0.8.

werkzeug.formparser.parse_form_data(environ, stream_factory=None, max_form_memory_size=None, max_content_length=None, cls=None, silent=True, *, max_form_parts=None)

Парсит данные формы в среде environ и возвращает их как кортеж в формате (stream, form, files). Вы должны вызывать этот метод только если метод транспортировки POST, PUT, или PATCH.

Если MIME-тип переданных данных multipart/form-data, то многословарь файлов будет заполнен объектами FileStorage Если MIME-тип неизвестен, входной поток обертывается и возвращается как первый аргумент, иначе поток пустой.

Это сокращение для часто используемого случая с FormDataParser.

Параметры:
  • environ (WSGIEnvironment) – WSGI-среда, используемая для парсинга.
  • stream_factory (TStreamFactory | None) – Необязательное вызываемое значение, которое возвращает новый потоковый файл для чтения и записи. Это вызываемое значение работает так же, как Response._get_file_stream().
  • max_form_memory_size (int | None) – максимальное количество байтов для хранения данных формы в памяти. Если данные превышают указанное значение, генерируется исключение RequestEntityTooLarge.
  • max_content_length (int | None) – Если это значение задано и переданные данные длиннее, чем это значение, генерируется исключение RequestEntityTooLarge.
  • cls (type[MultiDict[str, t.Any]] | None) – необязательный класс словаря для использования. Если это не указано или None, используется по умолчанию MultiDict.
  • silent (bool) – Если установлено в False, ошибки парсинга не будут перехвачены.
  • max_form_parts (int | None) – Максимальное количество частей multipart для парсинга. Если это значение превышено, генерируется исключение RequestEntityTooLarge.
Возвращает:

Кортеж в формате (stream, form, files).

Тип возвращаемого значения:

t_parse_result

Изменения

Изменено в версии 3.0: Параметры charset и errors были удалены.

Изменено в версии 2.3: Добавлен параметр max_form_parts.

Добавлен в версии 0.5.1: Добавлен параметр silent.

Добавлен в версии 0.5: Добавлены параметры max_form_memory_size, max_content_length, и cls.

© 2007 Pallets
Licensed under the BSD 3-clause License.
https://werkzeug.palletsprojects.com/en/latest/http/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API