Django 提供很多装饰器,它们可以为视图支持多种 HTTP 特性。
查看 装饰类 来了解如何在基于类的视图中使用这些装饰器。
允许的 HTTP 方法
在 django.views.decorators.http
中的装饰器可以用来根据请求方法来限制对视图的访问。如果条件不满足,这些装饰器将返回 django.http.HttpResponseNotAllowed
。
条件视图处理
下面 django.views.decorators.http
的装饰器被用来控制特殊视图中的缓存行为。
-
last_modified
(last_modified_func) 这些装饰器被用来生成
ETag
和Last-Modified
头部;查看 conditional view processing 。
GZip 压缩
django.views.decorators.gzip
里的装饰器控制基于每个视图的内容压缩。
Vary 头
django.views.decorators.vary
里的装饰器被用来根据特殊请求头的缓存控制。
-
vary_on_headers
(*headers) Vary
头定义了缓存机制在构建其缓存密钥时应该考虑哪些请求报头。查看 using vary headers 。
缓存
django.views.decorators.cache
中的装饰器控制服务器及客户端的缓存。
-
cache_control
(**kwargs) 这个装饰器通过添加所有关键字参数来修补响应的
Cache-Control
头。查看patch_cache_control()
来了解转换的详情。
Common
The decorators in django.views.decorators.common
allow per-view
customization of CommonMiddleware
behavior.
-
no_append_slash
() This decorator allows individual views to be excluded from
APPEND_SLASH
URL normalization.
讨论区