1. Django默认用户认证系统

  • Django自带用户认证系统

    • 它处理用户账号、组、权限以及基于cookie的用户会话。
  • Django认证系统位置
    • django.contrib.auth包含认证框架的核心和默认的模型。
  • Django认证系统同时处理认证和授权
    • 认证:验证一个用户是否它声称的那个人,可用于账号登录。
    • 授权:授权决定一个通过了认证的用户被允许做什么。
  • Django认证系统包含的内容
    • 用户:用户模型类、用户认证。
    • 权限:标识一个用户是否可以做一个特定的任务,MIS系统常用到。
    • 组:对多个具有相同权限的用户进行统一管理,MIS系统常用到。
    • 密码:一个可配置的密码哈希系统,设置密码、密码校验。

2. Django默认用户模型类

  • Django认证系统中提供了用户模型类User保存用户的数据。

    • User对象是认证系统的核心。
  • Django认证系统用户模型类位置

    • django.contrib.auth.models.User

  • 父类AbstractUser介绍

    • User对象基本属性

      • 创建用户必选:username、password
      • 创建用户可选:email、first_name、last_name、last_login、date_joined、is_active 、is_staff、is_superuse
      • 判断用户是否通过认证:is_authenticated
      • USERNAME_FIELD:可以修改用户名认证字段
    • 创建用户的方法

      user = User.objects.create_user(username, password, **extra_fields)
      
    • 用户认证的方法

      from django.contrib.auth import authenticate
      user = authenticate(username=username, password=password, **kwargs)
      
    • 处理密码的方法

      • 设置密码:set_password(raw_password)
      • 校验密码:check_password(raw_password)

3. 自定义用户模型类

思考:为什么要自定义用户模型类?

  • 观察注册界面会发现,个人博客注册页面中必须有手机号,而且在登录页面中也使用手机号进行认证。此外个人中心页面中有个人头像和个人简介字段。
  • 但是Django默认用户模型类中没有这些字段,所以要自定义用户模型类。

如何自定义用户模型类?

  • 继承自AbstractUser(可通过阅读Django默认用户模型类的源码得知) 。
  • 新增手机号字段,头像字段和简介字段。
from django.db import models
from django.contrib.auth.models import AbstractUser# 用户信息
class User(AbstractUser):# 电话号码字段# unique 为唯一性字段mobile = models.CharField(max_length=20, unique=True,blank=True)# 头像# upload_to为保存到响应的子目录中avatar = models.ImageField(upload_to='avatar/%Y%m%d/', blank=True)# 个人简介user_desc = models.TextField(max_length=500, blank=True)# 修改认证的字段USERNAME_FIELD = 'mobile'#创建超级管理员的需要必须输入的字段REQUIRED_FIELDS = ['username','email']# 内部类 class Meta 用于给 model 定义元数据class Meta:db_table='tb_user'              #修改默认的表名verbose_name='用户信息'         # Admin后台显示verbose_name_plural=verbose_name # Admin后台显示def __str__(self):return self.mobile

4. 指定用户模型类

文档

思考:为什么Django默认用户模型类是User?

  • 阅读源代码:'django.conf.global_settings’

    AUTH_USER_MODEL = 'auth.User'
    

结论:

  • Django用户模型类是通过全局配置项AUTH_USER_MODEL决定的

配置规则:

AUTH_USER_MODEL = '应用名.模型类名'
# 指定本项目用户模型类AUTH_USER_MODEL = 'users.User'

5. 迁移用户模型类

1.创建迁移文件

  • python manage.py makemigrations

2.执行迁移文件

  • python manage.py migrate

 查看数据库的变化:

迁移之前:

迁移之后

Django博客系统注册(定义用户模型类)相关推荐

  1. Django博客系统(文章分类模型)

    文章分类后台管理 网站的管理员负责查看.添加.修改.删除数据 Django能够根据定义的模型类自动地生成管理模块 登陆站点:http://127.0.0.1:8000/admin 需要服务器是启动状态 ...

  2. Django博客系统注册(创建用户模块应用)

    1. 创建用户模块应用 创建应用users $ python manage.py startapp users 2. 注册用户模块应用 INSTALLED_APPS = [...'users.apps ...

  3. Django博客系统注册(图形验证码接口设计和定义)

    1. 准备captcha包(该包用于生成图形验证码) 1.将生成图片验证码的库复制到新建的libs包中. 2.安装Python处理图片的库 这儿可能会变红显示错误: 解决方案:在虚拟环境中安装Pill ...

  4. EduCoder答案--博客系统- 注册功能

    简介 答案查询的入口网页版 并不是所有的关卡都有答案,有些只有部分关卡有 不要直接复制答案哦 博客系统 - 注册功能 >>>查看 第1关:生成验证码并保存session 第2关:调用 ...

  5. Django博客系统(评论模型)

    1. 定义模型类 在home子应用的models.py模型中定义评论模型 class Comment(models.Model):#评论内容content=models.TextField()#评论的 ...

  6. Django博客系统(文章模型)

    1. 定义模型类 在home子应用的models.py模型中定义文章模型 from users.models import User class Article(models.Model):" ...

  7. Django博客系统项目需求分析

    项目需求分析 需求分析原因 项目中,需求驱动开发.即开发人员需要以需求为目标来实现业务逻辑. 需求分析方式 企业中,借助产品原型图分析需求. 需求分析完后,前端按照产品原型图开发前端页面,后端开发对应 ...

  8. Django博客系统(详情评论数据展示)

    1. 查询评论数据并展示 1.查询评论数据并通过context传递给HTML from home.models import Comment from django.shortcuts import ...

  9. Django博客系统(详情页面展示)

    1. 页面展示 1.在home.views.py文件中定义视图 from django.views import Viewclass DetailView(View):def get(self,req ...

最新文章

  1. 如何去除 IDEA 中 xml 文件的屎黄色背景
  2. java中数据结构的应用_Java集合入门 (二)常用数据结构和应用场景-数组
  3. 页面未加载完时报的错误
  4. 分享几个vscode的插件
  5. 交叉工具链的搭建方法(测试成功)
  6. Programming C#.Classes and Objects.只读字段
  7. 车纷享:基于阿里云HBase构建车联网平台实践
  8. linux windows 动态库导出查看 ld -r
  9. C#子窗体精确定位到父窗体的某个位…
  10. centos磁盘满了,查找大文件并清理
  11. Linux内存分配器SLOB,深入理解Linux内核之SLOB分配器
  12. 104.二叉树的最大深度 (力扣leetcode) 博主可答疑该问题
  13. 大数据开发离线计算框架知识点总结
  14. 2012-2013考研英语词汇
  15. c语言 一元多项式展开括号,一元多项式Polynomial的C语言实现
  16. [kuangbin带你飞]专题六 最小生成树
  17. CloudSim介绍与使用 云计算的建模与仿真
  18. Android WebService(基于SOAP协议)个人记录总结
  19. NLP自然语言处理-英文文本电影影评分类2-pytorch版本
  20. 4A和堡垒机的关系与区别

热门文章

  1. CSDN湘苗培优,打造高素质技术人才
  2. Python让你成为AI 绘画大师,简直太惊艳了!(附代码))
  3. 用 Python 详解《英雄联盟》游戏取胜的重要因素!
  4. 2019北京智源大会在京开幕, 中外学术大咖共话人工智能研究前沿
  5. 挑战弱监督学习的三大热门问题 AutoWSL2019挑战赛正式开赛
  6. 百万奖金悬赏AI垃圾分类,就问你来不来?
  7. 80+机器学习数据集,还不快收藏
  8. 今晚8点开播 | 思必驰NLP大牛带你系统学习启发式对话
  9. 整合PyTorch 0.4和Caffe 2,PyTorch 1.0能挑战TensorFlow吗?
  10. AI一分钟 | 小米智能音箱mini版曝光,或售199元;特朗普被指利用AI竞选成功