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

【Python-Django定义用户模型类】Python-Django定义用户模型类详解!!!,第1张

概述定义用户模型类   1. Django默认用户认证系统 Django自带用户认证系统 它处理用户账号、组、权限以及基于cookie的用户会话。 Django认证系统位置 django.contrib.auth包含认证框架的核心和默认的模型。 django.contrib.contenttypes是Django内容类型系统,它允许权限与你创建的模型关联。 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 authenticateuser = authenticate(username=username,password=password,**kwargs)
 

  

    

处理密码的方法

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

  

3. 自定义用户模型类

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

Django默认用户模型类中没有mobile字段,所以要自定义用户模型类。

如何自定义用户模型类?

继承自AbstractUser(可通过阅读Django默认用户模型类的源码得知) 。 新增mobile字段。
from django.db import modelsfrom 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. 知识要点 Django自带用户认证系统,核心就是User对象。 Django用户认证系统包含了一系列对用户的 *** 作,比如:模型类,认证,权限,分组,密码处理等。 Django用户认证系统中的用户模型类可以自定义,继承自AbstractUser。 Django用户认证系统说明文档 总结

以上是内存溢出为你收集整理的【Python-Django定义用户模型类】Python-Django定义用户模型类详解!!!全部内容,希望文章能够帮你解决【Python-Django定义用户模型类】Python-Django定义用户模型类详解!!!所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1195630.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存