Дополнительные оболочки
Предупреждение
Устарело начиная с версии 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. По умолчанию используется 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.16.x/contrib/wrappers/