前端注册功能

用户注册

根据用户注册效果图,提取出用户模型类字段,进一步分析出 注册逻辑,并完成主要功能。

用户注册页面效果图
在这里插入图片描述

功能

注册逻辑

在这里插入图片描述

  1. 生成页面的图片验证码,需要两种触发方式: 默认执行,点击执行
  2. 获取输入的用户名
    1. 利用正则校验用户名的合法性
    2. 当用户名正则校验通过,向 后端 发送请求,校验 用户名是否重复
  3. 获取密码
    1. 利用正则校验密码的合法性
  4. 获取确认密码
    1. 校验 确认密码和密码 是否一致
  5. 获取手机号
    1. 利用正则校验手机号的合法性
    2. 当手机号正则校验通过,向 后端 发送请求,校验手机号是否重复
  6. 获取用户输入的验证码
    1. 校验验证码是否存在
  7. 校验是否选择复选框,必须勾选
  8. 点击注册按钮,将信息提交到后端
    在这里插入图片描述

用户表设计

用户表: 用户名、密码、手机号

可以自定义模型类,包含这些字段,在真正的项目开发中,不会自己重写一遍,而是继承 django内置的用户模型类: AbstractUser, 重写自己的字段, 但是需要在 settings.py 中 指明当前的用户模型类

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, verbose_name='手机号')

    class Meta:
        db_table = 'user_t'
        verbose_name = '用户'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.username

在配置文件中指明使用的模型类

# 指定用户模型类
AUTH_USER_MODEL = 'users.User'  # app.模型类

迁移模型类

python manage.py makemigrations users
python manage.py migrate users

用户名重复性校验

API设计

# 用户名传递问题
GET  /users/check/username/xxxx/

django

  • 主路由匹配,分布式路由匹配
  • 通过路由匹配,获取路径中的用户名,传递给视图类中的get函数。
  • 在处理函数中,根据用户名,进行查询,得到对应的用户数量,结果>0则说明重复,否则不重复。
  • 返回结果
  1. 路由匹配
from django.urls import path
from .views import *
urlpatterns = [
    path('check/username/<str:username>/', CheckUsername.as_view()),
]
  1. 视图接口
from rest_framework.views import APIView
from rest_framework.response import Response
from users.models import *

# Create your views here.
class CheckUsername(APIView):
    def get(self, request, username):
        """
        1. 用户名格式不正确,返回 404
        2. 用户名格式正确,用户名重复,返回 400
        3. 用户名格式正确,也不重复,返回 200
        """
        # 1. 判断用户名格式
        # 要求字母开头,中间为字母、数字、下划线,长度5-16
        if not re.find(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值