django view 装饰器
Django提供了几个可以应用于视图以支持各种HTTP特性的装饰器
Allowed HTTP
django.views.decorators.http里的装饰器可以根据请求方法限制对视图的访问。
require_http_methods
接收特定的HTPP 请求方法
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()请求
Conditional view processing
以下django.view .decorators.http中的decorator可用于控制特定视图上的缓存行为。
condition(etag_func=None, last_modified_func=None)
etag(etag_func)
last_modified(last_modified_func)
def latest_entry(request, blog_id):
return Entry.objects.filter(blog=blog_id).latest("published").published
from django.views.decorators.http import condition
@condition(last_modified_func=latest_entry)
def front_page(request, blog_id):
...
GZip compression
django.view .decorators.gzip中的decorator在每个视图的基础上控制了内容压缩。
gzip_page()
如果浏览器允许gzip压缩,则此装饰器将压缩内容。它相应地设置了Vary标头,以便缓存将其存储基于accept编码标头。
Vary headers
vary中的decorator可用于根据特定的请求头控制缓存。
vary_on_cookie(func)
vary_on_headers(*headers)
不同的标头定义了缓存机制在构建缓存键时应该考虑哪些请求标头。
Caching
django.views.decorators.cache 控制服务端和客户端缓存中的decorator。
cache_control(**kwargs)
这个装饰器通过添加所有关键字参数来修复响应的Cache-Control报头。
never_cache(view_func)
这个修饰符向响应添加了Cache-Control: max-age=0、no-cache、no-store、must-revalidate头,以指示永远不应该缓存页面。
django view 装饰器的更多相关文章
- Django - CBV装饰器实现用户登录验证
一.使用Django自带的decorator 通常情况,使用 函数定义的view,可以直接使用 login_required 直接装饰 @login_required def index(reques ...
- python django 自定义 装饰器
# -*-coding:utf-8-*- __author__ = "GILANG (pleasurelong@foxmail.com)" """ d ...
- django添加装饰器
引入模块: from django.utils.decorators import method_decorator 添加:@method_decorator(func) from django.ut ...
- django CBV装饰器 自定义django中间件 csrf跨站请求伪造 auth认证模块
CBV加装饰器 第一种 @method_decorator(装饰器) 加在get上 第二种 @method_decorator(login_auth,name='get') 加在类上 第三种 @met ...
- Django CBV装饰器 中间件 auth模块 CSRF跨站请求
CBV添加装饰器 给CBV添加装饰器有三种方法,三种方法都需要导入模块: from django.utils.decorators import method_decorator 第一种直接在方法上面 ...
- django 使用装饰器验证用户登陆
使用装饰器验证用户登陆,需要使用@method_decorator 首先需引用,method_decorator,并定义一个闭包 from django.utils.decorators import ...
- Django自定义装饰器
装饰器模板: def decorator(func): def wrapper(*args,**kwargs): return func(*args,**kwargs) return wrapper ...
- Django 之装饰器实现登录认证
def check_login(func): # 自定义登录验证装饰器 def warpper(request, *args, **kwargs): is_login = request.sessio ...
- 利用Django和装饰器做一个简单的修改密码页面
view视图代码: from django.shortcuts import render,redirect from django.http import HttpResponse from PIL ...
随机推荐
- 笔记-TCPCLIENT
]; private void ReceiveMessage() { try { tcpClient = );//创建TcpClient对象实例 } catch (Exception le) { } ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 17—Large Scale Machine Learning 大规模机器学习
Lecture17 Large Scale Machine Learning大规模机器学习 17.1 大型数据集的学习 Learning With Large Datasets 如果有一个低方差的模型 ...
- Elasticsearch-PHP 命名空间
命名空间 客户端有很多命名空间,通常能够暴漏出他管理的功能.命名空间对应Elasticsearch各种管理的端点.如下是完成的命名空间的列表: 命名空间 功能 indices() 以指数为中心的统计数 ...
- DVI与VGA有什么区别
[DVI与VGA有什么区别] DVI接口的传输信号采用全数字格式,与之对应的是采用模拟信号的VGA接口. VGA和DVI的区别,首先VGA模拟信号的传输比较麻烦,首先是将电脑内的数字信号转换为模拟信号 ...
- unity在安卓中横屏闪退
竖屏没问题,横屏闪退 配置文件的AndoridManifest.xml横竖屏设置要和UNITY设置的一致,否则就会强退 UNITY横竖屏设置
- java实现将文件压缩成zip格式
以下是将文件压缩成zip格式的工具类(复制后可以直接使用): zip4j.jar包下载地址:http://www.lingala.net/zip4j/download.php package util ...
- Quartz 官网翻译(转载)
Paths中的几个重要元素 Points void CGContextMoveToPoint ( CGContextRef c, CGFloat x, CGFloat y ); 指定 ...
- spring中添加google的guava缓存(demo)
1.pom文件中配置 <dependencies> <dependency> <groupId>org.springframework</groupId> ...
- 怎样在本地电脑上连接另外一台电脑上的mysql数据?(代码示例)
基本上有两种方式: 1,使用MYSQL的管理工具,可以远程连接,比如用导航猫系列的,只要知道对方IP,然后就可以自己输入账号密码连接了. 2,使用代码连接. Java代码示例: package com ...
- Red Hat 6.5 Samba服务器的搭建(登录访问)
搭建Samba服务器是为了实现Linux共享目录之后,在Windows可以直接访问该共享目录. 现在介绍如何在红帽6.5系统中搭建Samba服务. 搭建Samba服务之前,yum源必须配置好,本地源和 ...