工单系统之注册页面

本文介绍了如何在Django框架下实现工单系统的注册页面,包括模型类的定义、视图页面的创建、序列化器的设置、路由配置以及图形验证码的集成和使用。重点讲述了图形验证码的配置缓存、新建应用verifications以及在views.py中的应用。
摘要由CSDN通过智能技术生成

页面展示:

一、模型类

二、视图页面

     1、创建user.app

      2、实现注册页面的书写(手机验证码、图形验证码)

三、序列化器页面

四、路由

五、前端页面

# user/model.py #
class User(AbstractUser):
    email = models.CharField(max_length=130,null=True)
    phone = models.CharField(max_length=30,null=True)
    token = models.CharField(max_length=255)
    class Meta:
        db_table = 'User'
#user/view.py #
class RegisterView(APIView):
    def post(self, request):
        # 获取参数
        username = request.data.get('username')
        password = request.data.get('password')
        phone = request.data.get('phone')
        code = request.data.get('code')

        if not all([username, password, phone, code]):
            return Response({'code': 4003, 'msg': '参数不全'})

        # 逻辑与入库
        # 3.1验证手机验证码
        redis_cli = get_redis_connection('img_code')
        redis_phone_code = redis_cli.get(phone).decode('utf-8')
        if int(redis_phone_code) != int(code):
            return Response({'code': 4005, 'msg': '参数不正确'})

        # 3.2创建用户
        ser_obj = UserSerializer(data=request.data)
        ser_obj.is_valid()
        ser_obj.save()
        return Response({'code': 0, 'msg': '成功', 'data': ser_obj.data})
# user/sers.py #
from rest_framework import serializers
from rest_framework_jwt.settings import api_settings

from .models import *


class UserSerializer(serializers.Serializer):
    username = serializers.CharField()
    password = serializers.CharField()
    phone = serializers.CharField()
    token = serializers.CharField(read_only=True)

    def create(self, data):
        user = User.objects.create(**data)
        user.set_password(data.get('password'))
        # 补充生成记录登录状态的token
        jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
        jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER
        payload = jwt_payload_handler(user)
        token = jwt_encode_handler(payload)
        user.token = token
        user.save()

        return user

 

# user/urls.py #

from django.urls import path, include

from user.views import *

urlpatterns = [
   path('register/', RegisterView.as_view()),
]

图形验证码

1.1 gongdan/settings.py中配置缓存

# gongdan/settings.py #

# 图形验证码,存redis    0号库
CACHES = {
    "default": {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值