• Auth组件


    Django Auth认证组件

    Auth组件是什么

    Django为我们写好的一个综合的用户管理模块。这个模块为我们提供了关于用户管理的大多数方法。

    使用

    from django.contrib import auth
    

    方法

    • authenticate(username,password)

      判断用户名密码是否存在,存在返回认证的对象,否则返回None

      user_obj = auth.authenticate(username = username, password = password)
      print(user_obj)
      
    • is_authenticate

      判断当前请求是否经过验证

      if not request.user.is_authenticated():
          return redirect('%s?next=%s' % (settings.LOGIN_URL, request.path))
      
    • login(user_obj)

      登录:需要将认证过得对象传入,会自动帮你添加session

      auth.login(request, user_obj)
      
    • logout(request)

      退出登录

      auth.logout(request)
      
    • login_requierd

      语法糖,自动帮我们做权限认证,例如有没有登录,login_url设置跳转的接口

      @login_required(login_url="/login")
      def home(request):
          return render(request, "home.html")
      
    • create_user

      创建普通用户

      from django.contrib.auth.models import User
      user_obj = User.objects.create_user(username=username, password=password)
      
    • create_superuser

      创建管理员用户

      user_obj = User.objects.create_superuser(username=username, password=password, email=email)   # 管理员用户必须要传三个参数
      
    • check_password

      查看密码时候一致

      is_pwd = request.user.check_password(password)
      
    • set_password

      设置新密码,设置密码必须要保存,并且修改密码后session会失效,这是Django的机制使然

      request.user.set_password(new_pwd)
      request.user.save()
      

    方法

    • is_staff : 用户是否拥有网站的管理权限
    • is_active : 是否允许用户登录, 设置为 False,可以在不删除用户的前提下禁止用户登录

    继承拓展User表字段

    from django.contrib.auth.models import AbstractUser
    class UserInfo(AbstractUser):
        
        phone = models.CharField(max_length=11, null=True, unique=True)
        addr = models.CharField(max_length=32, null=True)
    

    在models.py 中添加完拓展类后还需要在setting.py 中配置

    AUTH_USER_MODEL = "app名.UserInfo"
    
  • 相关阅读:
    Access导入MSSQL SERVER
    Centos8停用、启用、查看当前启用的端口
    CentOS下使用VI
    CentOS关机与重启命令
    华为云CentOS8安装FTP
    华为云CentOS8安装JDK
    华为云CentOS8安装Nginx
    华为云CentOS8安装Redis
    华为云CentOS8安装MYSQL
    oracle 本地导入imp bat的写法
  • 原文地址:https://www.cnblogs.com/Gredae/p/11884629.html
Copyright © 2020-2023  润新知