zoukankan      html  css  js  c++  java
  • django装饰器

    1、CBV

      1)、装饰类

    from django.contrib.auth.decorators import login_required
    from django.utils.decorators import method_decorator
    
    from myadmin.permissions import check_permission
    
    #name为被装饰的方法名 @method_decorator(login_required,name
    ='dispatch')#或login_required(login_url = '/login/') class LoginRequiredMixin(object): def dispatch(self,request,*args,**kwargs): return super(LoginRequiredMixin,self).dispatch(request,*args,**kwargs)
    #以下两者等同;login_required()在check_permission()之前处理请求 @method_decorator([login_required,check_permission],name
    ='dispatch')#或元组 class LoginRequiredMixin(object): def dispatch(self,request,*args,**kwargs): return super(LoginRequiredMixin,self).dispatch(request,*args,**kwargs) @method_decorator(login_required,name='dispatch') @method_decorator(check_permission,name='dispatch') class LoginRequiredMixin(object): def dispatch(self,request,*args,**kwargs): return super(LoginRequiredMixin,self).dispatch(request,*args,**kwargs)

      2)、装饰类方法

    from django.contrib.auth.decorators import login_required
    from django.utils.decorators import method_decorator
    
    class LoginRequiredMixin(object):
        @method_decorator(login_required)
        def dispatch(self,request,*args,**kwargs):
            return super(LoginRequiredMixin,self).dispatch(request,*args,**kwargs)

    2、FBV

      login_required可以直接装饰函数,如果用户为登录默认跳转到settings.LOGIN_URL,如:LOGIN_URL = 'login'。

    也可以通过login_url自定义。

      login_required装饰器不会在用户上检查is_active标志,但默认的AUTHENTICATION_BACKENDS拒绝不活动的用户。

    渐变 --> 突变
  • 相关阅读:
    从0系统学Android-2.6Activity间数据传递
    观察者模式详解
    从0系统学Android-2.5更多隐式Intent用法
    从 View 的四个构造方法说起
    ListView详细介绍与使用
    推荐一个程序员系统学习网址
    从 http协议角度解析okhttp
    从0系统学Android-2.4隐式Intent
    菜单布局记录篇
    轮播图记录篇
  • 原文地址:https://www.cnblogs.com/lybpy/p/8526152.html
Copyright © 2011-2022 走看看