Посмотреть декораторы

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

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

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

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

require_http_methods( request_method_list )

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

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

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

require_GET()

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

require_POST()

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

require_safe()

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

Заметка

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

Обработка условного просмотра

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

condition( etag_func = Нет , last_modified_func = Нет )
etag( etag_func )
last_modified( last_modified_func )

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

Сжатие GZip

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

gzip_page()

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

Разные заголовки

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

vary_on_headers( * заголовки )

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

См. Использование различных заголовков .

Кеширование

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

cache_control( ** kwargs )

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

never_cache( view_func )

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

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

private добавлена ​​директива.

Copyright ©2021 All rights reserved