11:Django基础之auth模块

内容概要

  • 用户认证模块auth

  • auth模块补充

  • auth_user表扩展字段

 

内容详细

11:Django基础之auth模块

 

 

 

auth模块

主要是用来做用户相关的功能
    注册 登录 验证 修改密码 注销
​
访问admin需要管理员账号
    该账号数据均来源于数据库迁移之后生成的auth_user表
    
如何创建admin管理员账号
    createsuperuser

 



11:Django基础之auth模块

 

 

 

具体操作

from django.contrib import auth
​
# 校验用户名密码是否正确
auth.authenticate(request,username=username,password=password)
# 保存用户状态
auth.login(request,user_obj)
# 查看用户是否登录
request.user.is_authenticated()
# 获取用户对象
request.user
# 校验原密码是否正确
request.user.check_password()
# 修改密码
request.user.set_password()
request.user.save()
# 校验是否登录装饰器
from django.contrib.auth.decorators import login_required
"""
跳转全局配置
    LOGIN_URL = '/lg/'
跳转局部配置
    @login_required(login_url='/lg/')
"""
 

 

auth模块补充

1.用户注册
from django.contrib.auth.models import AbstractUser,User
    # 操作auth_user写入数据不能使用create方法 密码不会自动加密
        # User.objects.create(username=username,password=password,email=email)
        # 创建普通用户
        User.objects.create_user(username=username,password=password,email=email)
        # 创建超级用户
        User.objects.create_superuser(username=username, password=password, email=email)
2.用户注销
    auth.logout(request)

 

11:Django基础之auth模块

 

 

auth模块用户表扩展字段

在auth_user表的基础之上还想增加额外的字段 并且还可以使用auth模块所有的功能
# 配合文件配置
# 告诉django使用我们自己定义的表来取代auth_user表
AUTH_USER_MODEL = 'app01.Userinfo'  # 应用名.表名
​
# 一对一表关联(了解)
# 面向对象继承(掌握)
from django.contrib.auth.models import AbstractUser
class Userinfo(AbstractUser):
    # 扩展AbstractUser表中没有的字段
    phone = models.BigIntegerField()
    info = models.CharField(max_length=255)

 

小结

1:校验用户名与密码

      auth.authenticate(username=username, ...)
 
2:保存用户信息
      auth.login(request, user_obj)
 
3:判断用户是否登录
      request.user.is_authenticated()
 
4:装饰器
      form django.contrib.auth.decorators import login_required
      局部:@login_required(login_url='/login/') (灵活)
      全局:配置--->LOGIN_URL = '/login/' (省事)
 
5:验证原密码(修改密码)
      request.user.check_password(原密码)
 
6:修改密码(两步)
      request.user.set_password(新密码)
      request.user.save()
 
7:创建用户
  命令行创建:createsupperuser(超级用户)(管理一般不会使用逻辑代码创建)
       from django.contrib.auth.models import User
  User.objexts.create()(创建的用户密码是明文)(不推荐)
       User.objexts.create_user()(普通用户)

 

 11:Django基础之auth模块

 

上一篇:到底怎么将pytest应用到实践中?(持续更新)


下一篇:angular7中关于登录路由守卫