Spec-Zone.ru › Django 1.9

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

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_cookie(func) [source]
vary_on_headers(*headers) [source]

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

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

Кэширование

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

never_cache(view_func) [source]

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

До Django 1.9 отправлялся заголовок Cache-Control: max-age=0. Это не гарантировало предотвращения кэширования во всех браузерах.

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

Spec-Zone.ru

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