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_SLASHURL normalization.
讨论区