Декораторы представлений
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Обратите внимание, что методы запроса должны быть в верхнем регистре.
-
require_GET() -
Декоратор, требующий, чтобы представление принимало только метод GET.
-
require_POST() -
Декоратор, требующий, чтобы представление принимало только метод POST.
-
require_safe() -
Декоратор, требующий, чтобы представление принимало только методы GET и HEAD. Эти методы обычно считаются «безопасными», поскольку они не должны иметь значения выполнения действия, отличного от получения запрашиваемого ресурса.
Примечание
Django автоматически удалит содержимое ответов на запросы HEAD, оставив заголовки неизменными, поэтому вы можете обрабатывать запросы HEAD точно так же, как запросы GET в своих представлениях. Поскольку некоторые программы, такие как проверяющие ссылки, полагаются на запросы HEAD, вам может быть предпочтительнее использовать
require_safeвместоrequire_GET.
Условное выполнение представления
Следующие декораторы в 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; см. условное выполнение представления.
Сжатие GZip
Декораторы в django.views.decorators.gzip управляют сжатием содержимого на уровне представления.
-
gzip_page() -
Этот декоратор сжимает содержимое, если браузер поддерживает сжатие gzip. Он соответствующим образом устанавливает заголовок
Vary, чтобы кэши основывали свое хранение на заголовкеAccept-Encoding.
Заголовки Vary
Декораторы в django.views.decorators.vary могут использоваться для управления кэшированием на основе определенных заголовков запроса.
-
vary_on_headers(*headers)[source] -
Заголовок
Varyопределяет, какие заголовки запроса механизм кэширования должен учитывать при построении ключа кэша.
© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/1.8/topics/http/decorators/