当前位置: 首页 > news >正文

sae 企业网站如何查看百度指数

sae 企业网站,如何查看百度指数,网站公司上海,监控设备网站制作1. Django默认用户模型类 (1)Django认证系统中提供了用户模型类User保存用户的数据。 User对象是认证系统的核心。 (2)Django认证系统用户模型类位置 django.contrib.auth.models.User(3)父类AbstractUs…

1. Django默认用户模型类

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

  • User对象是认证系统的核心。

(2)Django认证系统用户模型类位置

  • django.contrib.auth.models.User

 

(3)父类AbstractUser介绍 

一旦一个模型里面的Meta里面abstract = True,那这个模型就是抽象模型。抽象模型有啥用呢?就是用来被继承。我们在迁移的时候,他不会把这个模型也去映射表。可以理解为就是一个模板,其他模型把他继承之后,就能共用里面的字段(比如AbstractUser里面的username、first_name、last_name、email等等)。

其中 USERNAME_FIELD 就是指定到底是哪个字段作为django默认的凭证。REQUIRED_FIELDS指定的字段和你username是否一对一匹配的上。

  • User对象基本属性
    • 创建用户(注册用户)必选:username、password
    • 创建用户(注册用户)可选:email、first_name、last_name、last_login、date_joined、
    • is_active 、is_staff、is_superuser
    • 判断用户是否通过认证(是否登录):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)

2. 自定义用户模型类

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

  • 如今几乎所有的web应用都需要用户提供手机号码,单默认的用户模型类中没有mobile字段
  • 随着业务的发展,未来很可能需要自定义用户模型
  • django强烈推荐在开始一个项目时设置一个自定义的用户模型如何自定义用户模型类?
  • 继承自AbstractUser(最简单可行的方法,详情见官方文档) 。新增mobile 字段。

在users.models.py 模块中定义模型如下:

在通过 createsuperuser 管理命令创建用户时,将提示输入mobile字段

REQUIRED_FIELDS = ['mobile'] 

from django.db import models
from django.contrib.auth.models import AbstractUser 
from django.core.exceptions import ValidationErrordef validate_mobile(value):if not re.match(r'1[3-9]\d{9}', value): raise ValidationError('手机号码格式不正确')class User(AbstractUser): """Custom user model.Add mobile field to Django user model """# 添加一个mobile字段mobile = models.CharField('手机号码', max_length=11, unique=True, help_text='手机号码', null=True, blank=True,error_messages={'unique': '手机号码已注册'}, validators=[validate_mobile])# 如果希望用email作为用户名,# USERNAME_FIELD = 'email'def __str__(self): return self.usernameclass Meta:db_table = 'tb_user'	# 表 名verbose_name = 'user'	# 站点显示名verbose_name_plural = 'users'	# 复数显示REQUIRED_FIELDS = ['mobile']	# 在通过 createsuperuser 管理命令创建用户时,将提示输入mobile字段

 模型写好之后,是不是要迁移?但是现在不能去迁移?为啥?因为现在去迁移会跟我们本身自带的User模型造成冲突。所以我们要去认证只能有一个用户模型。往下看第四大点。

知识要点

1. Django自带用户认证系统核心就是User对象,并封装了一系列可用的方法和属性。

2. Django用户认证系统包含了一系列对用户的操作,比如:模型类,认证,权限,分组,密码处理等。

3. Django用户认证系统中的用户模型类可以自定义,最简单的方法是继承自AbstractUser

4. 更多Django中的自定义验证见官方文档

3. 迁移用户模型类

(1)指定用户模型类

Django是通过配置项AUTH_USER_MODEL 来确定项目中到底使用哪个用户模型,所以我们需要修改配置指定我们的自定义的用户模型。

配置规则:

AUTH_USER_MODEL = '应用名.模型类名'

注意:应用要在INSTALLED_APPS 中注册,且一定要在第一次迁移之前要设置好此项

# 指定本项目用户模型类 settings.py 设置

AUTH_USER_MODEL = 'users.User'

(2)迁移用户模型类

创建迁移文件

python manage.py makemigrations

执行迁移文件

python manage.py migrate

(3) 知识要点

1. 用户认证系统中的用户模型类,是通过全局配置项AUTH_USER_MODEL 决定的。

2. 如果迁移自定义用户模型类,必须先配置AUTH_USER_MODEL

3. 注意在迁移之前,运行服务会报错,因为默认项目依赖用户模型

4.验证自定义User模型中定义的一些字段

(1)REQUIRED_FIELDS

在通过 createsuperuser 管理命令创建用户时,将提示输入mobile字段

REQUIRED_FIELDS = ['mobile'] 

 (2)max_length=11

 (3)validators=[validate_mobile] 校验器可以列表嵌套多个校验函数

 

(4) 判断用户是否通过认证is_authenticated

 进入shell之前,我们先安装ipython

pip install ipython

  密码是加密的,这个就不说啦。就是给大家看一哈。

 is_authenticated

 (5)创建用户create和create_user的区别

上面我通过 python manage.py createsuperuser 创建超级管理员的时候,然后我在shell中查看daxia用户的密码发现是加密。

 但是我通过 User.objects.create(username='test',password='123456')去创建用户的时候,发现密码却是明文。(TODO:后面去校验的时候永远不会通过

 此时我用User.objects.create_user(username='健健', password='123456')去创建用户的时候,发现密码确实加密的。

 大家应该发现区别了吧~

(6)authenticate(用户认证(用户登录)的方法)

验证通过的话会返回这个用户

from django.contrib.auth import authenticate
user = authenticate(username=username, password=password, **kwargs)

验证返回不通过的话,就不会返回

 (7)check_password检查密码

 (8)set_password设置密码

因为上面我们create创建的用户的密码是明文的,那这个时候我们把他修改一下。

密码是不是加密啦。

注意:对象.set_password(raw_password)后,记得 对象.save()保存一下。

http://www.hkea.cn/news/49890/

相关文章:

  • 东莞市做网站公司seo怎样
  • ps做网站大小尺寸应用商店优化
  • 网站站群建设方案知名网页设计公司
  • 广州网站建设公司哪家好专业的seo搜索引擎优化培训
  • 外国人做汉字网站seo搜索排名影响因素主要有
  • 外贸五金网站建设网站制作优化排名
  • 义乌网站建设多少钱网络平台营销
  • 怀仁有做网站的公司吗磁力搜索引擎2023
  • 建站行业都扁平化设计合肥网站推广公司哪家好
  • 做企业网站织梦和wordpress哪个好百度指数查询工具app
  • 郑州网站服务公司优化神马排名软件
  • 茶叶网站建设的优势南宁seo外包平台
  • 高古楼网站 做窗子北京seo技术交流
  • 南阳建设网站制作网络最有效的推广方法
  • 纯静态网站seoseo排名优化北京
  • 开封网站建设哪家好指数计算器
  • 网站开发 架构石家庄seo关键词排名
  • 可以免费做商业网站的cms百度seo霸屏软件
  • 哪家网站建设专业快速建站教程
  • 坪山网站建设行业现状优化seo方案
  • 做网站需要架构师吗网站平台有哪些
  • 网站建设丿选择金手指15凡科建站官网
  • 可以做外国网站文章武汉企业seo推广
  • 天津网站建设公司最好太原做网站哪家好
  • 网站代下单怎么做百度指数数据分析平台入口
  • 淘宝做动效代码的网站seo的优化方向
  • 番禺建网站公司网站搜索工具
  • 安徽万振建设集团网站长春网站推广公司
  • 网站怎么制作 推广seo超级外链工具免费
  • 中小学网站建设探讨东莞seo整站优化火速