自定义用户模型(一) 一、自定义User模型 二、功能需求分析 三、图形验证码功能实现 四、注册页面

如果不想使用django内置的权限系统,当然你需要自定义用户模型,这种情况不讨论。当然也不建议这么做,django内置权限系统有大的自定义功能扩展,而不是重复造*。

开启一个新项目,官方强烈推荐用户自定义用户模型,即是默认的用户模型目前已经足够,但是未来可能会要扩展。

from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
  pass

注意:在这里我们需要在settings中指定AUTH_USER_MODEL='User模型的路径'

如下图所示,我们重写了User模型,以及UserManager管理器,在User中,我们新增了字段mobile和email_active,在UserManage中添加了在使用createsuperuser命令创建用户时,必须添加email字段

自定义用户模型(一)
一、自定义User模型
二、功能需求分析
三、图形验证码功能实现
四、注册页面

自定义用户模型(一)
一、自定义User模型
二、功能需求分析
三、图形验证码功能实现
四、注册页面

创建完之后,使用下面两条命令进行数据库的迁移:

python manage.py makemigrations

python manage.py migrate

二、功能需求分析

2.1设计接口思路

分析业务逻辑,明确在该业务中需要几个子业务,每个业务用一个相关的接口来实现

分析接口的功能任务,以及接口的请求方式以及返回的数据:

请求方式:get,post,put,delete,等

接口的路径定义

需要接受的参数以及参数的类型(如路径参数,查询字符串,请求表单,json等)

返回的数据以及数据格式

三、图形验证码功能实现

按照(二)介绍的,分析该接口的设计思路

首先,分析接口说明

类目 说明
请求方法 get
URL定义 /image_code/
参数格式 查询参数

参数说明:

参数名 类型 是否必须 描述
rand 字符串 输入的用户名

 如下图所示(views.py),为图形验证码接口的后端代码:

验证码的生成是python的pillow库实现的:

自定义用户模型(一)
一、自定义User模型
二、功能需求分析
三、图形验证码功能实现
四、注册页面

如下图所示(urls.py):

自定义用户模型(一)
一、自定义User模型
二、功能需求分析
三、图形验证码功能实现
四、注册页面

如下图所示,是前端的js代码:

自定义用户模型(一)
一、自定义User模型
二、功能需求分析
三、图形验证码功能实现
四、注册页面

四、注册页面

类目 说明
请求方式 get
url定义 /user/register
参数 无参数

后端代码(views.py)如下图所示:

自定义用户模型(一)
一、自定义User模型
二、功能需求分析
三、图形验证码功能实现
四、注册页面

urls.py如下所示:

自定义用户模型(一)
一、自定义User模型
二、功能需求分析
三、图形验证码功能实现
四、注册页面

到此,我们已经完成了用户注册的前面的两个功能,用户注册和图形验证码功能,谢谢大家的观看,希望对你有帮助!!!