内容概要

  • 用户认证模块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()(普通用户)

最新文章

  1. PHP获取二维数组中的指定若干列【同array_column】
  2. Qt——设计颜色编辑器
  3. hdfs shell 命令以及原理
  4. 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
  5. DOS常用的简单命令
  6. Android(java)学习笔记233: 远程服务的应用场景(移动支付案例)
  7. jquery 当前页导航高亮显示
  8. js小功能合集:计算指定时间距今多久、评论树核心代码、字符串替换和去除。
  9. 面试(三)---volatile
  10. 从零开始学spring cloud(六) -------- Ribbon
  11. redis学习(二)——String数据类型
  12. Win下安装nvm
  13. GCC编译器原理(三)------编译原理三:编译过程(3)---编译之汇编以及静态链接【2】
  14. strong vs copy
  15. SQL3-查找各个部门当前(to_date='9999-01-01')领导当前薪水详情以及其对应部门编号dept_no
  16. 装饰者模式&数据库连接池原理
  17. java单个方法达到了65536字节的限制
  18. 【CodeForces148D】Bag of mice
  19. EF Core如何输出日志到Visual Studio的输出窗口
  20. 北京Uber优步司机奖励政策(2月23日)

热门文章

  1. Mac/Win录屏工具推荐-LICEcap
  2. 第二章 FreeBSD之开机关机命令
  3. Charles的证书下载(web)
  4. 【开源技术分享】无需流媒体服务,让浏览器直接播放rtsp/rtmp的神器:EasyMedia
  5. C++ primer plus读书笔记——第17章 输入、输出和文件
  6. Kubernetes服务pod的健康检测liveness和readiness详解
  7. [Java] GUI编程基础 绘图
  8. 用nvm的方式安装node
  9. [Java] Hibernate
  10. 分析Red Hat sosreport输出的方法