【Python-Django定义用户模型类】Python-Django定义用户模型类详解!!!

定义用户模型类

1. Django默认用户认证系统

  • Django自带用户认证系统

    • 它处理用户账号、组、权限以及基于cookie的用户会话。
  • Django认证系统位置
    • django.contrib.auth包含认证框架的核心和默认的模型。
    • django.contrib.contenttypes是Django内容类型系统,它允许权限与你创建的模型关联。
  • 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
  • 创建用户的方法
    
    
    
    user = User.objects.create_user(username, email, 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默认用户模型类中没有mobile字段,所以要自定义用户模型类。

如何自定义用户模型类?

  • 继承自AbstractUser(可通过阅读Django默认用户模型类的源码得知) 。
  • 新增mobile字段。
from django.db import models
from django.contrib.auth.models import AbstractUser

# Create your models here.

class User(AbstractUser):
    """自定义用户模型类"""
    mobile = models.CharField(max_length=11, unique=True, verbose_name=‘手机号‘)

    class Meta:
        db_table = ‘tb_users‘
        verbose_name = ‘用户‘
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.username

  

4. 知识要点

  1. Django自带用户认证系统,核心就是User对象。
  2. Django用户认证系统包含了一系列对用户的操作,比如:模型类,认证,权限,分组,密码处理等。
  3. Django用户认证系统中的用户模型类可以自定义,继承自AbstractUser。
  4. Django用户认证系统说明文档

原文地址:https://www.cnblogs.com/LiuXinyu12378/p/11258601.html

时间: 2024-08-13 14:55:28

【Python-Django定义用户模型类】Python-Django定义用户模型类详解!!!的相关文章

Python之路【第十二篇续】jQuery案例详解

jQuery 1.jQuery和JS和HTML的关系 首先了HTML是实际展示在用户面前的用户可以直接体验到的,JS是操作HTML的他能改变HTML实际展示给用户的效果! 首先了解JS是一门语言,他是运行在浏览器上的. jQuery是什么呢?他是对JS进行了封装,成了一个类库,就类似于python中的类,我们用的时候直接掉类库了就行了非常方便.比如paramiko模块,我们要使用paramiko就得学习里面的方法. 2.jQuery分为的几部分 ------找 ----选择器 ----筛选器 -

Python 集合set()添加删除、交集、并集、集合操作详解

在Python set是基本数据类型的一种集合类型,它有可变集合(set())和不可变集合(frozenset)两种.创建集合set.集合set添加.集合删除.交集.并集.差集的操作都是非常实用的方法. 创建集合set python set类是在python的sets模块中,大家现在使用的python2.7.x中,不需要导入sets模块可以直接创建集合.>>>set('boy')set(['y', 'b', 'o']) 集合添加.删除 python 集合的添加有两种常用方法,分别是add

(一)Python入门-4控制语句:02单分支选择结构-条件表达式详解

一:选择结构介绍 选择结构通过判断条件是否成立,来决定执行哪个分支.选择结构有多种形式,分为:单分 支.双分支.多分支.流程图如下: 二:单分支选择结构 if语句单分支结构的语法形式如下: if 条件表达式: 语句/语句块 其中:1条件表达式:可以是逻辑表达式.关系表达式.算术表达式等. 2语句/语句块:可以是一条语句,也可以是多条语句.多条语句,缩进必须对齐一致. 三:条件表达式详解 在选择和循环结构中,条件表达式的值为 False的情况如下: False.0.0.0.空值 None.空序列对

C# 类、对象、方法和属性详解

一.相关概念: 1.对象:现实世界中的实体(世间万物皆对象) 2.类:具有相似属性和方法的对象的集合 3.面向对象程序设计的特点:封装 继承 多态 4.对象的三要素:属性(对象是什么).方法(对象能做什么).事件(对象如何响应) ☆相互关系:类是对象的抽象,对象是类的实例,类是一种抽象的分类,对象则是具体事物. 比如如果车是一个类,某个人的一辆奔驰车就是一个对象,车的颜色质量就是它的属性,启动.停止这些动作则可以定义为车的方法. 二.类的定义与语法 1.定义类: [修饰符] class 类名 {

Python Web开发中,WSGI协议的作用和实现原理详解

首先理解下面三个概念: WSGI:全称是Web Server Gateway Interface,WSGI不是服务器,python模块,框架,API或者任何软件,只是一种规范,描述web server如何与web application通信的规范. uwsgi:与WSGI一样是一种协议,是uWSGI服务器的独占协议,用于定义传输信息的类型(type of information),每一个uwsgi packet前4byte为传输信息类型的描述,与WSGI协议是两种东西,据说该协议是fcgi协议的

python接口自动化(四十)- logger 日志 - 下(超详解)

简介 按照上一篇的计划,这一篇给小伙伴们讲解一下:(1)多模块使用logging,(2)通过文件配置logging模块,(3)自己封装一个日志(logging)类.可能有的小伙伴在这里会有个疑问一个logging为什么分两篇的篇幅来介绍她呢???那是因为日志是非常重要的,用于记录系统.软件操作事件的记录文件或文件集合,可分为事件日志和消息日志.具有处理历史数据.诊断问题的追踪以及理解系统.软件的活动等重要作用,在开发或者测试软系统过程中出现了问题,我们首先想到的就是她——logging.她可不像

python之IO多路复用(二)——select、poll、epoll详解

select,poll,epoll都是IO多路复用的机制.I/O多路复用就是通过一种机制使一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作. select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的 异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用户空间.   sellect.poll.epoll三者的区别 : select通过一个sel

python基础之元组(Tuple)、字典(Dictionary)详解

元组定义 元组是另一个数据类型,类似于List(列表). 元组用”()”标识.内部元素用逗号隔开.但是元素不能二次赋值,相当于只读列表. 举例: tuple = ( ‘abcd’, 786 , 2.23, ‘john’, 70.2 ) list = [ ‘abcd’, 786 , 2.23, ‘john’, 70.2 ] tuple[2] = 1000 # 元组中是非法应用 list[2] = 1000 # 列表中是合法应用 print tuple * 2 # 输出元组两次 字典定义 字典(di

python字符串连接的三种方法及其效率、适用场景详解

python字符串连接的方法,一般有以下三种:方法1:直接通过加号(+)操作符连接website=& 39;python& 39;+& 39;tab& 39;+& 39; com& 39;方法2 python字符串连接的方法,一般有以下三种: 方法1:直接通过加号(+)操作符连接 1 website = 'python' + 'tab' + '.com' 方法2:join方法 1 2 listStr = ['python', 'tab', '.com'] 

python接口自动化(十八)--重定向(Location)(详解)

简介 在实际工作中,有些接口请求完以后会重定向到别的url,而你却需要重定向前的url.URL主要是针对虚拟空间而言,因为不是自己独立管理的服务器,所以无法正常进行常规的操作.但是自己又不希望通过主域名的二级目录进行访问,而 是希望通过主域名的二级域名进行访问.所以这个时候就会用到URL重定向. 重定向过程好比有个绰号叫“浏览器”的人写信找张三借钱,张三回信说没有钱,让“浏览器”去找李四借,并将李四现在的通信地址告诉给了“浏览器 ”.于是,“浏览器”又按张三提供通信地址给李四写信借钱,李四收到信