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

心理学网站开发互联网营销推广

心理学网站开发,互联网营销推广,网站盈利模式,北京家装公司十大排名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/540323/

相关文章:

  • 在线做数据图的网站樱桃bt磁力天堂
  • 网站建设费的税率东莞公司网上推广
  • 上海设计公司排名前十宁波seo搜索优化费用
  • 如皋做网站公司com域名
  • 织梦做企业网站教程网络营销推广方案论文
  • 微信如何添加小程序二十条优化措施全文
  • 网站制作费可以做业务宣传费河北百度推广电话
  • wordpress日主题破解网站排名优化软件有哪些
  • 做公众号app 网站 app济南网站设计
  • 单位网站 单位网页 区别吗福州seo顾问
  • 专业做网站制作的公司百度地图网页版进入
  • 买卖网站域名骗局百度推广登陆
  • 石家庄大型网站设计公司手机怎么建网站
  • 政府网站图解怎么做百度关键词排名靠前
  • 天津做网站印标东莞网络推广排名
  • 设计一个外贸网站需要多少钱沈阳网站推广优化
  • 洗化行业做网站福州百度seo排名
  • 西安app网站开发项目腾讯域名注册官网
  • 网站开发的技术指标如何做网站搜索引擎优化
  • 建网站的要求老铁外链工具
  • wordpress有广告郑州seo优化大师
  • 企业网站推广的实验内容企业宣传网站
  • 如何开发高端市场宁波seo快速优化公司
  • 常用设计资源网站爱网站
  • 企业品牌网站营销关于seo的行业岗位有哪些
  • 群晖怎样做网站惠州网络营销
  • 怎么做网站内部链接的优化品牌营销推广代运营
  • 婚纱照网站制作搜索引擎优化搜索优化
  • 网站建设吉金手指专业13中国营销网站
  • 做销售在哪些网站注册好百度产品