Spec-Zone.ru › Werkzeug 0.15

Дополнительные оболочки

Предупреждение

Устаревшее начиная с версии 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/bar foo/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/

Spec-Zone.ru

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