Django 提供很多装饰器,它们可以为视图支持多种 HTTP 特性。
在 django.views.decorators.http
中的装饰器可以用来根据请求方法来限制对视图的访问。如果条件不满足,这些装饰器将返回 django.http.HttpResponseNotAllowed
。
装饰器可以要求视图只接受特定的请求方法。用法如下:
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
注意请求方法应该是大写
装饰器可以要求视图只接受 GET 方法。
装饰器可以要求视图只接受 POST 方法。
装饰器可以要求视图只接收 GET 和 HEAD 方法。这些方法通常被认为是安全的,因为它们除了检索请求的资源外,没有特别的操作。
注解:Web 服务器自动删除对 HEAD
请求的相应内容,并保持头部不变,所以你可以像处理视图里的 GET
请求一样处理 HEAD
请求。因为一些软件依赖 HEAD
请求(比如链接检测器),因此你需要使用 require_safe
而不是 require_GET
。
下面 django.views.decorators.http
的装饰器被用来控制特殊视图中的缓存行为。
condition(etag_func=None, last_modified_func=None)
etag(etag_func)
last_modified(last_modified_func)
这些装饰器被用来生成 ETag
和 Last-Modified
头部
django.views.decorators.gzip
里的装饰器控制基于每个视图的内容压缩。
如果浏览器允许 gzip
压缩,这个装饰器会压缩内容。 它相应地设置 Vary
表头,以便缓存将其存储基于 Accept-Encoding
表头。
django.views.decorators.vary
中的装饰器可用于控制基于特定请求标头的缓存。
vary_on_cookie(func)
vary_on_headers(*headers)
Vary
表头定义了缓存机制在构建其缓存键时应考虑哪些请求表头。
django.views.decorators.cache
中的装饰器控制服务器及客户端的缓存。
这个装饰器通过添加所有关键字参数来修补响应的 Cache-Control
头。
此装饰器将 Expires
表头添加到当前日期/时间。
这个装饰器在响应中添加一个 Cache-Control: max-age=0, no-cache, no-store, must-revalidate, private
表头,以指示永远不应该缓存页面。
每个表头仅在尚未设置时才添加。
本文题目:创新互联Django4.0教程:Django4.0处理HTTP请求-视图装饰器
网页链接:http://www.shufengxianlan.com/qtweb/news1/357601.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联