zoukankan      html  css  js  c++  java
  • Django在CBV中使用,用户登录验证组件

    源地址:https://blog.csdn.net/Jamin2018/article/details/79047703

    1.CBV模式中,由于View中的视图为类,所有不能像FBV一样使用装饰器,故可以继承一个自定义的类,这个类的功能的验证用户有没有登录,需要登录才能访问这个类

    2.utils文件夹中创建mixin_utils.py文件(也可以自己创建一个PY模块)

    3..mixin_utils.py代码:

    from django.contrib.auth.decorators import login_required
    from django.utils.decorators import method_decorator
    
    # 类名可以自己更改
    class LoginRequiredMixin(object):
        @method_decorator(login_required(login_url='/login/'))# login为自己创建的登录路径
        def dispatch(self,request,*args,**kwargs):
            return super(LoginRequiredMixin,self).dispatch(request,*args,**kwargs)

    4.View.py函数中,相关类需要验证功能直接继承该类。

    # 验证有没有权限,即是否登录
    from utils.mixin_utils import LoginRequiredMixin
    
    # 在继承的时候要注意,登录验证模块一定要放在View前面
    class CourseInfoView(LoginRequiredMixin,View):

    5.当访问这个CourseInfoView类中,会先判断用户有没有登录。有登录才会继续执行。

    类似FBV的django自带的装饰器:

    @method_decorator(login_required(login_url='/login/'))
  • 相关阅读:
    spring 事务管理
    snmp4j 异步获取节点信息
    snmp4j 过滤错误的节点
    国际化支持
    通过Java反射机制获取对象的方法
    jdk中有哪些包不用自动导入
    位运算符
    spring 从入门到精通 (一)
    命令行工具nslookup查域名DNS服务器
    java/php DES/CBC/PKCS5Padding加密解密算法实现过程
  • 原文地址:https://www.cnblogs.com/wtil/p/9350291.html
Copyright © 2011-2022 走看看