django——Auth 模块

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'
                    '应用名.表名'
posted @ 2020-08-17 21:05  pythoner_wl  阅读(73)  评论(0编辑  收藏  举报