Django博客系统注册(定义用户模型类)
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)
- 设置密码:
- User对象基本属性
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博客系统注册(定义用户模型类)相关推荐
- Django博客系统(文章分类模型)
文章分类后台管理 网站的管理员负责查看.添加.修改.删除数据 Django能够根据定义的模型类自动地生成管理模块 登陆站点:http://127.0.0.1:8000/admin 需要服务器是启动状态 ...
- Django博客系统注册(创建用户模块应用)
1. 创建用户模块应用 创建应用users $ python manage.py startapp users 2. 注册用户模块应用 INSTALLED_APPS = [...'users.apps ...
- Django博客系统注册(图形验证码接口设计和定义)
1. 准备captcha包(该包用于生成图形验证码) 1.将生成图片验证码的库复制到新建的libs包中. 2.安装Python处理图片的库 这儿可能会变红显示错误: 解决方案:在虚拟环境中安装Pill ...
- EduCoder答案--博客系统- 注册功能
简介 答案查询的入口网页版 并不是所有的关卡都有答案,有些只有部分关卡有 不要直接复制答案哦 博客系统 - 注册功能 >>>查看 第1关:生成验证码并保存session 第2关:调用 ...
- Django博客系统(评论模型)
1. 定义模型类 在home子应用的models.py模型中定义评论模型 class Comment(models.Model):#评论内容content=models.TextField()#评论的 ...
- Django博客系统(文章模型)
1. 定义模型类 在home子应用的models.py模型中定义文章模型 from users.models import User class Article(models.Model):" ...
- Django博客系统项目需求分析
项目需求分析 需求分析原因 项目中,需求驱动开发.即开发人员需要以需求为目标来实现业务逻辑. 需求分析方式 企业中,借助产品原型图分析需求. 需求分析完后,前端按照产品原型图开发前端页面,后端开发对应 ...
- Django博客系统(详情评论数据展示)
1. 查询评论数据并展示 1.查询评论数据并通过context传递给HTML from home.models import Comment from django.shortcuts import ...
- Django博客系统(详情页面展示)
1. 页面展示 1.在home.views.py文件中定义视图 from django.views import Viewclass DetailView(View):def get(self,req ...
最新文章
- 如何去除 IDEA 中 xml 文件的屎黄色背景
- java中数据结构的应用_Java集合入门 (二)常用数据结构和应用场景-数组
- 页面未加载完时报的错误
- 分享几个vscode的插件
- 交叉工具链的搭建方法(测试成功)
- Programming C#.Classes and Objects.只读字段
- 车纷享:基于阿里云HBase构建车联网平台实践
- linux windows 动态库导出查看 ld -r
- C#子窗体精确定位到父窗体的某个位…
- centos磁盘满了,查找大文件并清理
- Linux内存分配器SLOB,深入理解Linux内核之SLOB分配器
- 104.二叉树的最大深度 (力扣leetcode) 博主可答疑该问题
- 大数据开发离线计算框架知识点总结
- 2012-2013考研英语词汇
- c语言 一元多项式展开括号,一元多项式Polynomial的C语言实现
- [kuangbin带你飞]专题六 最小生成树
- CloudSim介绍与使用 云计算的建模与仿真
- Android WebService(基于SOAP协议)个人记录总结
- NLP自然语言处理-英文文本电影影评分类2-pytorch版本
- 4A和堡垒机的关系与区别
热门文章
- CSDN湘苗培优,打造高素质技术人才
- Python让你成为AI 绘画大师,简直太惊艳了!(附代码))
- 用 Python 详解《英雄联盟》游戏取胜的重要因素!
- 2019北京智源大会在京开幕, 中外学术大咖共话人工智能研究前沿
- 挑战弱监督学习的三大热门问题 AutoWSL2019挑战赛正式开赛
- 百万奖金悬赏AI垃圾分类,就问你来不来?
- 80+机器学习数据集,还不快收藏
- 今晚8点开播 | 思必驰NLP大牛带你系统学习启发式对话
- 整合PyTorch 0.4和Caffe 2,PyTorch 1.0能挑战TensorFlow吗?
- AI一分钟 | 小米智能音箱mini版曝光,或售199元;特朗普被指利用AI竞选成功