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 @   pythoner_wl  阅读(77)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示