Дополнительные оболочки
Предупреждение
Устаревшее начиная с версии 0.15: Все классы в этом модуле были перемещены или устарели и будут удалены в версии 1.0. Проверьте документацию для статуса каждого класса.
werkzeug.contrib.wrappers
Дополнительные оболочки или миксины, предоставленные сообществом. Эти оболочки могут быть смешаны в объекты запроса для добавления дополнительной функциональности.
Пример:
from werkzeug.wrappers import Request as RequestBase
from werkzeug.contrib.wrappers import JSONRequestMixin
class Request(RequestBase, JSONRequestMixin):
pass
После этого этот объект запроса предоставляет дополнительную функциональность JSONRequestMixin.
-
class werkzeug.contrib.wrappers.JSONRequestMixin -
Устаревшее начиная с версии 0.15: Перемещено в
werkzeug.wrappers.json.JSONMixin. Этот старый импорт будет удален в версии 1.0.
-
class werkzeug.contrib.wrappers.ProtobufRequestMixin -
Добавить метод разбора protobuf к объекту запроса. Это позволит, если возможно, разобрать входные данные через protobuf.
BadRequestбудет поднято, если тип контента не protobuf или данные не могут быть корректно обработаны.Устаревшее начиная с версии 0.15: Этот миксин будет удален в версии 1.0.
-
parse_protobuf(proto_type) -
Разбор данных в экземпляр proto_type.
-
protobuf_check_initialization = True -
По умолчанию
ProtobufRequestMixinбудет подниматьBadRequest, если объект не инициализирован. Вы можете обойти эту проверку, установив это свойство в значениеFalse.
-
-
class werkzeug.contrib.wrappers.RoutingArgsRequestMixin -
Этот миксин запроса добавляет поддержку аргументов маршрутизации wsgiorg спецификации.
Устаревшее начиная с версии 0.15: Этот миксин будет удален в версии 1.0.
-
routing_args -
Позиционные аргументы URL в виде
tuple.
-
routing_vars -
Именованные аргументы URL в виде
dict.
-
-
class werkzeug.contrib.wrappers.ReverseSlashBehaviorRequestMixin -
Этот миксин изменяет поведение слеша в конце пути
script_rootиpath. Это позволяет использоватьurljoin()напрямую в путях.Поскольку это меняет поведение
Requestэтот класс нужно смешивать перед самим классом запроса:class MyRequest(ReverseSlashBehaviorRequestMixin, Request): passЭтот пример показывает различия (для приложения, установленного на
/applicationи запроса к/application/foo/bar):обычное поведение обратное поведение script_root/application/application/path/foo/barfoo/barУстаревшее начиная с версии 0.15: Этот миксин будет удален в версии 1.0.
-
path -
Запрашиваемый путь как строка unicode. Работает примерно так же, как обычный путь в окружении WSGI, но не будет содержать ведущий слеш.
-
script_root -
Корневой путь скрипта, включая конечный слеш.
-
-
class werkzeug.contrib.wrappers.DynamicCharsetRequestMixin -
«Если этот миксин смешан в класс запроса, он предоставит динамическое
charsetсвойство. Это означает, что если кодировка передается в заголовках типа контента, она используется оттуда.Поскольку это меняет поведение
Requestэтот класс нужно смешивать перед самим классом запроса:class MyRequest(DynamicCharsetRequestMixin, Request): passПо умолчанию объект запроса предполагает, что кодировка URL такая же, как и кодировка данных. Если кодировка меняется в каждом запросе в зависимости от передаваемых данных, не стоит полагаться на то, что URL будут меняться в соответствии с этим. Большинство браузеров предполагают либо utf-8, либо latin1 для URL, если у них возникают трудности с определением. Сильно рекомендуется установить кодировку URL в utf-8:
class MyRequest(DynamicCharsetRequestMixin, Request): url_charset = 'utf-8'Устаревшее начиная с версии 0.15: Этот миксин будет удален в версии 1.0.
Новое в версии 0.6.
-
charset -
Кодировка из типа контента.
-
default_charset = 'latin1' -
кодировка по умолчанию, которая предполагается, если заголовок типа контента отсутствует или не содержит параметр кодировки. По умолчанию используется latin1, что и указано в HTTP как кодировка по умолчанию. Однако, вы можете установить это значение в utf-8 для лучшей поддержки браузеров, которые не передают кодировку для входных данных.
-
unknown_charset(charset) -
Вызывается, если была предоставлена кодировка, но она не поддерживается модулем Python codecs. По умолчанию используется latin1, чтобы не потерять никакой информации, вы можете переопределить этот метод, чтобы изменить поведение.
Параметры: charset – кодировка, которая не была найдена. Возвращает: заменяющая кодировка.
-
-
class werkzeug.contrib.wrappers.DynamicCharsetResponseMixin -
Если этот миксин смешан в класс ответа, он предоставит динамическое
charsetсвойство. Это означает, что если кодировка найдена и сохранена вContent-Typeзаголовке и обновляется автоматически. Это также означает небольшую потерю производительности, но может быть полезно, если вы работаете с различными кодировками в ответах.Поскольку атрибут charset не является свойством на уровне класса, значение по умолчанию хранится в
default_charset.Поскольку это меняет поведение
Responseэтот класс нужно смешивать перед самим классом ответа:class MyResponse(DynamicCharsetResponseMixin, Response): passУстаревшее начиная с версии 0.15: Этот миксин будет удален в версии 1.0.
Новое в версии 0.6.
-
charset -
Кодировка для ответа. Хранится в заголовке Content-Type как параметр.
-
default_charset = 'utf-8' -
кодировка по умолчанию.
-
© 2007–2020 Pallets
Licensed under the BSD 3-clause License.
https://werkzeug.palletsprojects.com/en/0.15.x/contrib/wrappers/