1、定义
Django带有一个用户认证系统。它处理用户账号、组、权限以及基于cookie的用户会话。用户可以直接是使用Django自带的用户表。
2、基本字段
模型类位置from django.contrib.contrib.auth.models import User
- username:用户名
- password:密码
- email:邮箱
- first_name:名
- last_name:姓
- is_superuser:是否是管理员账号(/admin)
- is_staff:是否可以访问admin管理界面
- is_active:是否是活跃用户,默认True。一般不删除用户,而是将用户的is_active设为False
- last_login:上一次的登录时间
- date_joined:用户创建的时间
3、创建用户
(1)创建莆田用户create_user
from django.contrib.auth.models import user
user = User.objcets.create_user(username=’用户名’, password=’密码’, email=’邮箱’, …)
(2)创建超级用户create_superuser
from django.contrib.auth.models import user
user = User.objcets.create_superuser(username=’用户名’, password=’密码’, email=’邮箱’, …)
创建完可在auth_user表中查看:
4、删除用户
例:
from django.contrib.auth.models import User
try:
user = User.objcects.get(username=’用户名’)
user.is_active = False # 记当前用户无效
user.save()
print(“删除失败”)
except:
print(“删除失败”)
5、密码
(1)校验密码
# 如果用户名密码校验成功返回对于user对象,否则返回None
from django.contrib.auth import authenticate
user = authenticate(username=username, password=password)
(2)修改密码
from django.contrib.auth.models import User
try:
user = User.objects.get(username=’aaa’)
user.set_password(‘123’)
user.save()
return HttpResponse(‘密码修改成功’)
except:
return HttpResponse(‘密码修改失败’)
6、登录
(1)登录状态保持
from django.contrib.auth.models import login
def login_view(request):
user = authenticate(username=username, password=password)
login(request, user)
(2)登录状态校验
from django.contrib.auth.decorators import login_required
@login_required
def index_view(request):
# 该视图必须为用户登录状态下才可访问
# 当前登录用户可通过rquest.user获取
login_user = request.user
…
(3)登录状态取消
from django.contrib.auth.models import logout
def login_view(request):
logout(request)
7、内建用户表——扩展字段
方法一:通过建立新表,跟内建表做1对1
方法二:继承内建的抽象user模型类
步骤:
- 添加新的应用
- 定义模型类,继承AbstractUser
- settings.ps中指明AUTH _USER_MODEL = ‘应用名;类名’’
注意:此操作要在第一次migrate前进行
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)