django 1.8 官方文档翻译: 3-1-4 视图装饰器
来源:互联网 发布:网络词扑街是什么意思 编辑:程序博客网 时间:2024/05/22 08:28
视图装饰器
Django为视图提供了数个装饰器,用以支持相关的HTTP服务。
允许的HTTP 方法
django.views.decorators.http
包里的装饰器可以基于请求的方法来限制对视图的访问。若条件不满足会返回 django.http.HttpResponseNotAllowed
。
require_http_methods
(request_method_list)[source]
限制视图只能服务规定的http方法。用法:
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 头部;参考 conditional view processing.
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 文档协作翻译小组,原文:Decorators。
本文以 CC BY-NC-SA 3.0 协议发布,转载请保留作者署名和文章出处。
Django 文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质。交流群:467338606。
- django 1.8 官方文档翻译: 3-1-4 视图装饰器
- django 1.8 官方文档翻译: 3-1-2 编写视图
- django 1.8 官方文档翻译: 3-4-1 基于类的视图
- django 1.8 官方文档翻译: 3-4-3 使用基于类的视图处理表单
- django 1.8 官方文档翻译: 3-4-2 内建显示视图
- django 1.8 官方文档翻译: 3-4-5 内建基于类的视图的API
- django 1.8 官方文档翻译: 3-2-1 内建的视图
- django 1.8 官方文档翻译: 3-3-4 管理文件
- django 1.8 官方文档翻译: 3-3-1 文件上传
- django 1.8 官方文档翻译: 2-4-3 模式编辑器
- django 1.8 官方文档翻译:9-1-4 格式本地化
- django 1.8 官方文档翻译: 3-6-1 中间件概览
- django 1.8 官方文档翻译:13-1-3 密码管理
- django 1.8 官方文档翻译: 1-1-1 Django初探
- django 1.8 官方文档翻译:6-3 Django异常
- django 1.8 官方文档翻译: 6-6-1 部署 Django
- django 1.8 官方文档翻译: 3-1-1 URL调度器
- django 1.8 官方文档翻译: 3-1-3 Django 的快捷函数
- 类加载与初始化顺序
- 利用NSURLProtocol和本地代理实现在线视频边播放边缓存
- iOS开发——创建你自己的Framework
- 编写一个方法,返回某集合的所有子集
- Mac Cornerstone无法上传.a文件
- django 1.8 官方文档翻译: 3-1-4 视图装饰器
- CentOS, FreeBSD, Ubuntu LTS 维护风格的简单比较
- unity 在game视图模型穿插问题
- user,debug,userdebug版本
- ORB特征点检测
- Apache Http Server和Tomcat 之区别
- executeQuery()
- Ruby 批量下载图片文件
- 张逸:ThoughtWorks(中国)程序员读书雷达