Auth模块
创建超级用户(管理员)
python3 manage.py createsuperuser
from django.contrib import auth
方法
# 1.比对用户名和密码是否正确
user_obj = auth.authenticate(request,username=username,password=password)
# 2.保存用户状态
auth.login(request,user_obj)
# 执行了该方法 通过request.user获取到当前登陆的用户对象
# 3.判断当前用户是否登陆
request.user.is_authenticated()
# 4.获取当前登陆用户
request.user
# 5.校验用户是否登陆装饰器
from django.contrib.auth.decorators import login_required
# 局部配置
@login_required(login_url='/login/')
@login_required(login_url='/app01/login/')
# 全局配置
LOGIN_URL = '/login/'
# 6.比对原密码
request.user.check_password(old_password)
# 7.修改密码
request.user.set_password(new_password)
request.user.save()
# 8.注销
auth.logout(request)
# 9.注册
User.objects.create(username=username,password=password)
# 写入数据 不能用create 密码没有加密处理
# 创建普通用户
User.objects.create_user(username=username,password=password)
# 创建超级用户:使用代码创建超级用户 邮箱是必填的 而用命令创建则可以不填
User.objects.create_superuser(username=username,email='123@qq.com',password=password)
扩展auth_user表
from django.db import models
from django.contrib.auth.models import User,AbstractUser
class UserInfo(AbstractUser):
phone = models.BigIntegerField()
注意:
1.在继承之前没有执行过数据库迁移命令
2.继承的类里面不要覆盖AbstractUser里面的字段名
注册:
AUTH_USER_MODEL = 'app01.UserInfo'
'应用名.表名'