引入模块:
from django.utils.decorators import method_decorator 添加:@method_decorator(func)
from django.utils.decorators import method_decorator
def outer(func):
def inner(request, *args, **kwargs):
print(request.method)
return func(request, *args, **kwargs)
return inner class Login(views.View): @method_decorator(outer)
def get(self, request, *args, **kwargs): return render(request, 'login.html', {'message': ''}) def outer(func):
def inner(request, *args, **kwargs):
print(request.method)
return func(request, *args, **kwargs)
return inner ========== mark ========= //对所有请求做处理
class Order(views.View):
pass
# CBV
# @method_decorator(outer, name='dispatch')
class Login(views.View): # @method_decorator(outer)
def dispatch(self, request, *args, **kwargs):
ret = super(Login, self).dispatch(request, *args, **kwargs)
return ret 如果对某一类请求做处理,则在相应方法上添加装饰器
如果对所有请求做处理,则在dispatch上添加装饰器
												

django添加装饰器的更多相关文章

  1. django class类即视图类添加装饰器的几种方法

    根据别人发布整理,个人爱好收集(原文:https://blog.csdn.net/mydistance/article/details/83958655 ) 第一种:定义函数装饰器,在函数,类中使用函 ...

  2. Django CBV装饰器 中间件 auth模块 CSRF跨站请求

    CBV添加装饰器 给CBV添加装饰器有三种方法,三种方法都需要导入模块: from django.utils.decorators import method_decorator 第一种直接在方法上面 ...

  3. Cookie与Session、CBV添加装饰器

    cookie Cookie的由来 大家都知道HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不 ...

  4. 通过decorators = [,] 的形式给类中的所有方法添加装饰器

    给类添加装饰器有多种方法: 1.可以在类中的某个方法上边直接@添加,这个粒度细.无需详细介绍 2.也可以在类中通过 decorators=[, ]的形式添加,这样的话,类中的所有方法都会被一次性加上装 ...

  5. Django - CBV装饰器实现用户登录验证

    一.使用Django自带的decorator 通常情况,使用 函数定义的view,可以直接使用 login_required 直接装饰 @login_required def index(reques ...

  6. Django ListView DetailView等基于类的视图如何添加装饰器?

    场景: Django开发中,如果我们使用了类视图,如:ListView.DetailView.UpdateView等,这时我们又想要对这个视图添加一个装饰器,来实现某种功能,这时候该怎么处理呢? 环境 ...

  7. 给django视图类添加装饰器

    要将login_required装饰到view class的dispatch方法上, 因为dispatch方法为类方法,不是单个的函数,所以需要将装饰函数的装饰器 login_required转化为装 ...

  8. python框架之Django(8)-CBV中添加装饰器

    现有如下检查登录装饰器: from functools import wraps def check_login(func): @wraps(func) def inner(request, *arg ...

  9. django view 装饰器

    Django提供了几个可以应用于视图以支持各种HTTP特性的装饰器 Allowed HTTP django.views.decorators.http里的装饰器可以根据请求方法限制对视图的访问. re ...

随机推荐

  1. jsonp封装成promise

    首先将jsonp通过npm 安装引入js文件中,代码如下 import originJsonp from 'jsonp' export default function jsonp(url, data ...

  2. IE 兼容background-size

    1:修改src *background-size: cover;//兼容ie的background-size filter: progid:DXImageTransform.Microsoft.Alp ...

  3. SO减单后MO分配给其他SO的问题修复

    逻辑:MO取进FP系统之前,首先判断是否带有SO号+SO行号,如果带有SO号+SO行号,则判断此SO号和SO行号是否存在订单表中,如果不存在则表示此MO对应的订单已减单,此MO需要做过滤,并展现在报表 ...

  4. Avalon Framework

    Apache Avalon has closed. Apache Avalon began in 1999 as the Java Apache Server Framework and in lat ...

  5. FileItem类的常用方法(关于文件上传的)

    1.boolean  isFormField().isFormField方法用来判断FileItem对象里面封装的数据是一个普通文本表单字段,还是一个文件表单字段.如果是普通文本表单字段,返回一个tr ...

  6. java面试题:jvm

    jvm内存区域 Q:jvm内存怎么划分的? 答: 方法区(线程共享):各个线程共享的一个区域,用于存储虚拟机加载的类信息.常量.静态变量.即时编译器编译后的代码等数据.虽然 Java 虚拟机规范把方法 ...

  7. navicat连接虚拟机中mysql"Access denied for user'root'@'IP地址'"问题

    登陆要链接的服务器上的mysql 命令:mysql -uroot -p123456 然后执行 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED ...

  8. Shell教程 之echo命令

    1.显示普通字符串 这里的双引号完全可以省略,以下命令效果一致: echo "传递参数实例!" echo 传递参数实例! 2.显示转义字符 echo "\"传递 ...

  9. SVN集成compare4比较软件

    打开TortoiseSVN的Setting,选择左边的Diff Viewer 设置如下: "D:\Program Files\Beyond Compare 4\BComp.exe" ...

  10. cookie与webStorage区别