Посмотреть декораторы ¶
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
добавлена директива.