auth模块的作用
auth 模块能够快速的实现用户模块的基本功能。用户认证、用户组和权限管理等。
建项目后,Django 就把 auth 模块的所有功能提供给了开发者使用,开发者可以调用相应的接口,实现不同的功能需求。
auth模块相关表
表名 | 作用 |
---|---|
user | User是auth模块中维护用户信息的表,在数据库中该表被命名为auth_user,该表继承自Abstractuser |
group | 定义用户组模型,该表只包含一个name字段和一个permissions(权限)多对多关系字段,在数据库中被命名为auth_group |
Permission | 权限表,提供表级别的权限控制,可以检查用户是否对某个表拥有增(add),改(change),删(delete)权限 |
auth_user 表的字段以及字段类型,如下所示。
新建一张auth_user 用户表,并为此表添加一个新用户 user
#from django.contrib import auth
# 使用auth模块
from django.contrib.auth.models import User
#auth认证系统默认使用User表
user=User.objects.create_user(username='太难了',password='123456',email='888888@qq.com')
save()
#调用该方法保存数据
修改用户表中的某个属性
user.set_password(password='12345abc')
#对原密码进行修改
用户认证功能
auth 模块提供了认证用户功能—验证用户名以及密码是否正确。如果认证成功(用户名和密码正确有效),便会返回一个 User 对象。authenticate()会在该 User 对象上设置一个属性(id)来标识后端已经认证了该用户,且该信息在后续的登录过程中是需要的。可以用下面方式引入后使用:
from django.contrib.auth import authenticate
user = authenticate(username='我不会',password='12345abc')
其他功能
用户的登录(login)、退出(logout)功能,封装在 django.contrib.auth 里;
用户权限系统封装在 django.contrib.auth.models.Permission 中 ,可以对用户的权限进行增加、修改、删除;
用户组可以通过 from django.contrib.auth.models.Group 导入后来创建组或者删除组。、
举例:
user.user_permission.add(permission)#给某个用户权限的添加权限
group = Group.objects.create(name=group_name)#添加新的用户组
group.save() #保存新建好的用户组
group.delete()#删除用户组