Spec-Zone.ru › Django 5.1

Декораторы представлений

Django предоставляет несколько декораторов, которые можно применять к представлениям для поддержки различных функций HTTP.

См. Декорирование класса, чтобы узнать, как использовать эти декораторы с представлениями на основе класса.

Разрешенные HTTP-методы

Декораторы в django.views.decorators.http могут использоваться для ограничения доступа к представлениям на основе метода запроса. Эти декораторы вернут django.http.HttpResponseNotAllowed, если условия не выполнены.

require_http_methods(request_method_list) [source]

Декоратор для требования, чтобы представление принимало только определенные методы запроса. Использование:

from django.views.decorators.http import require_http_methods


@require_http_methods(["GET", "POST"])
def my_view(request):
    # I can assume now that only GET or POST requests make it this far
    # ...
    pass

Обратите внимание, что методы запроса должны быть в верхнем регистре.

Изменено в Django 5.0:

Добавлена поддержка обертывания асинхронных функций представлений.

require_GET()

Декоратор, требующий, чтобы представление принимало только метод GET.

Изменено в Django 5.0:

Добавлена поддержка обертывания асинхронных функций представлений.

require_POST()

Декоратор, требующий, чтобы представление принимало только метод POST.

Изменено в Django 5.0:

Добавлена поддержка обертывания асинхронных функций представлений.

require_safe()

Декоратор, требующий, чтобы представление принимало только методы GET и HEAD. Эти методы обычно считаются «безопасными», потому что они не должны иметь значения, совершая действие, отличное от получения запрошенного ресурса.

Примечание

Веб-серверы должны автоматически удалять содержимое ответов на запросы HEAD, оставляя заголовки неизменными, поэтому вы можете обрабатывать запросы HEAD точно так же, как запросы GET в своих представлениях. Поскольку некоторые программы, такие как проверки ссылок, полагаются на запросы HEAD, вы можете предпочесть использовать require_safe вместо require_GET.

Изменено в Django 5.0:

Добавлена поддержка обертывания асинхронных функций представлений.

Условное обработка представлений

Следующие декораторы в django.views.decorators.http могут использоваться для управления поведением кэширования на определенных представлениях.

condition(etag_func=None, last_modified_func=None) [source]
etag(etag_func) [source]
last_modified(last_modified_func) [source]

Эти декораторы могут использоваться для генерации ETag и Last-Modified заголовков; см. условную обработку представлений.

Изменено в Django 5.0:

Добавлена поддержка обертывания асинхронных функций представлений.

Сжатие GZip

Декораторы в django.views.decorators.gzip управляют сжатием содержимого на основе представлений.

gzip_page()

Этот декоратор сжимает содержимое, если браузер поддерживает сжатие gzip. Он устанавливает заголовок Vary соответственно, чтобы кэши основывали свой хранение на заголовке Accept-Encoding.

Изменено в Django 5.0:

Добавлена поддержка обертывания асинхронных функций представлений.

Заголовки Vary

Декораторы в django.views.decorators.vary могут использоваться для управления кэшированием на основе определённых заголовков запроса.

vary_on_cookie(func)
Изменено в Django 5.0:

Добавлена поддержка обертывания асинхронных функций представлений.

vary_on_headers(*headers) [source]

Заголовок Vary определяет, какие заголовки запроса механизм кэширования должен учитывать при построении ключа кэша.

См. использование заголовков vary.

Изменено в Django 5.0:

Добавлена поддержка обертывания асинхронных функций представлений.

Кэширование

Декораторы в django.views.decorators.cache управляют кэшированием на стороне сервера и клиента.

cache_control(**kwargs) [source]

Этот декоратор изменяет заголовок ответа Cache-Control путем добавления всех аргументов ключевых слов в него. См. patch_cache_control() для подробностей преобразования.

Изменено в Django 5.0:

Добавлена поддержка обертывания асинхронных функций представлений.

never_cache(view_func) [source]

Этот декоратор добавляет заголовок Expires к текущей дате/времени.

Этот декоратор добавляет заголовок Cache-Control: max-age=0, no-cache, no-store, must-revalidate, private к ответу, чтобы указать, что страница никогда не должна кэшироваться.

Каждый заголовок добавляется только в том случае, если он еще не задан.

Изменено в Django 5.0:

Добавлена поддержка обертывания асинхронных функций представлений.

Общие

Декораторы в django.views.decorators.common позволяют настраивать поведение CommonMiddleware на уровне представлений.

no_append_slash() [source]

Этот декоратор позволяет исключить отдельные представления из нормализации URL в APPEND_SLASH.

Изменено в Django 5.0:

Добавлена поддержка обертывания асинхронных функций представлений.

© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/5.1/topics/http/decorators/

Spec-Zone.ru

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