Django基础之auth模块
2024-09-08 11:40:36
内容概要
用户认证模块auth
auth模块补充
auth_user表扩展字段
内容详细
auth模块
主要是用来做用户相关的功能
注册 登录 验证 修改密码 注销
访问admin需要管理员账号
该账号数据均来源于数据库迁移之后生成的auth_user表 如何创建admin管理员账号
createsuperuser
具体操作
from django.contrib import auth
# 校验用户名密码是否正确
auth.authenticate(request,username=username,password=password)
# 保存用户状态
auth.login(request,user_obj)
# 查看用户是否登录
request.user.is_authenticated()
# 获取用户对象
request.user
# 校验原密码是否正确
request.user.check_password()
# 修改密码
request.user.set_password()
request.user.save()
# 校验是否登录装饰器
from django.contrib.auth.decorators import login_required
"""
跳转全局配置
LOGIN_URL = '/lg/'
跳转局部配置
@login_required(login_url='/lg/')
"""
auth模块补充
1.用户注册
from django.contrib.auth.models import AbstractUser,User
# 操作auth_user写入数据不能使用create方法 密码不会自动加密
# User.objects.create(username=username,password=password,email=email)
# 创建普通用户
User.objects.create_user(username=username,password=password,email=email)
# 创建超级用户
User.objects.create_superuser(username=username, password=password, email=email)
2.用户注销
auth.logout(request)
auth模块用户表扩展字段
在auth_user表的基础之上还想增加额外的字段 并且还可以使用auth模块所有的功能
# 配合文件配置
# 告诉django使用我们自己定义的表来取代auth_user表
AUTH_USER_MODEL = 'app01.Userinfo' # 应用名.表名
# 一对一表关联(了解)
# 面向对象继承(掌握)
from django.contrib.auth.models import AbstractUser
class Userinfo(AbstractUser):
# 扩展AbstractUser表中没有的字段
phone = models.BigIntegerField()
info = models.CharField(max_length=255)
小结
1:校验用户名与密码 auth.authenticate(username=username, ...) 2:保存用户信息
auth.login(request, user_obj) 3:判断用户是否登录
request.user.is_authenticated() 4:装饰器
form django.contrib.auth.decorators import login_required
局部:@login_required(login_url='/login/') (灵活)
全局:配置--->LOGIN_URL = '/login/' (省事) 5:验证原密码(修改密码)
request.user.check_password(原密码) 6:修改密码(两步)
request.user.set_password(新密码)
request.user.save() 7:创建用户
命令行创建:createsupperuser(超级用户)(管理一般不会使用逻辑代码创建)
from django.contrib.auth.models import User
User.objexts.create()(创建的用户密码是明文)(不推荐)
User.objexts.create_user()(普通用户)
最新文章
- PHP获取二维数组中的指定若干列【同array_column】
- Qt——设计颜色编辑器
- hdfs shell 命令以及原理
- 打印出所有的";水仙花数";,所谓";水仙花数";是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个";水仙花数";,因为153=1的三次方+5的三次方+3的三次方。
- DOS常用的简单命令
- Android(java)学习笔记233: 远程服务的应用场景(移动支付案例)
- jquery 当前页导航高亮显示
- js小功能合集:计算指定时间距今多久、评论树核心代码、字符串替换和去除。
- 面试(三)---volatile
- 从零开始学spring cloud(六) -------- Ribbon
- redis学习(二)——String数据类型
- Win下安装nvm
- GCC编译器原理(三)------编译原理三:编译过程(3)---编译之汇编以及静态链接【2】
- strong vs copy
- SQL3-查找各个部门当前(to_date='9999-01-01')领导当前薪水详情以及其对应部门编号dept_no
- 装饰者模式&;数据库连接池原理
- java单个方法达到了65536字节的限制
- 【CodeForces148D】Bag of mice
- EF Core如何输出日志到Visual Studio的输出窗口
- 北京Uber优步司机奖励政策(2月23日)
热门文章
- Mac/Win录屏工具推荐-LICEcap
- 第二章 FreeBSD之开机关机命令
- Charles的证书下载(web)
- 【开源技术分享】无需流媒体服务,让浏览器直接播放rtsp/rtmp的神器:EasyMedia
- C++ primer plus读书笔记——第17章 输入、输出和文件
- Kubernetes服务pod的健康检测liveness和readiness详解
- [Java] GUI编程基础 绘图
- 用nvm的方式安装node
- [Java] Hibernate
- 分析Red Hat sosreport输出的方法