我是靠谱客的博主 飘逸小蚂蚁,最近开发中收集的这篇文章主要介绍商城的注册(后端)一、注册,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、注册

1.1 用户名的验证

class Check(APIView):
    def get(self,request,username):
        if not re.findall(r'^[a-zA-Z]w{4,15}$',username):
            return Response({'code': 404,'msg': '用户格式不正确'})
        if User.objects.filter(username=username):
            return Response({'code': 400,'msg': '用户名重复'})
        else:
            return Response({'code': 200,'msg': '完成'})

1.2 手机号的验证

class CheckMobile(APIView):
    def get(self, request, mobile):
        if not re.findall(r"^1[3-9]d{9}$", mobile):
            return Response({"code":404, 'msg':"手机号格式不正确"})
        num = User.objects.filter(mobile=mobile).count()
        if num == 0:
            return Response({"code":200, 'msg': 'OK'})
        else:
            return Response({"code":400, 'msg': '手机号重复'})

1.3 图片验证码

import string
from captcha.image import ImageCaptcha  //导入对象
class Imgcode(APIView):
    def get(self,request,uuid):
        code= ''.join(random.sample(string.ascii_letters + string.digits, 4))
        print(code)
        cap = ImageCaptcha()
        img_code = cap.generate(code)
        r= redis.Redis(host='localhost',port=6379,db=0)
        r.set(uuid,code,ex=120)
        r.close()
        return HttpResponse(img_code,content_type='image/png')

1.4 效验验证码

class Imgcode2(APIView):
    def get(self,request):
        uuid = request.query_params.get('imageCodeID')
        img_code = request.query_params.get('imageCode')   //前端传来的参数
        r = redis.Redis(host='localhost', port=6379, db=0) // 导入redis数据库
        r_code = r.get(uuid)
        if not r_code:  // 判断redis数据库中是否有验证码
            return Response({'code': 204,'msg': '验证码过期'})
        print(img_code)
        print(r_code)
        if img_code.lower() == r_code.decode().lower(): //判断验证码 decode():解码
            return Response({'code': 200,'msg': '完成'})
        else:
            return Response({'code': 404, 'msg': '验证码错误'})

1.5 注册用户

class Register(APIView):
    def post(self,request):
        username = request.data.get('userName')
        pwd = request.data.get('pwd')
        mobile = request.data.get('mobile')
        aggree = request.data.get('agree')
        if not all([username,pwd,mobile]):  //判断所有信息是否完整
            return Response({'code': 204, 'msg': '注册信息不完整'})
        if not aggree:
            return Response({'code': 204, 'msg': '未同意用户使用协议'})
        // 将数据添加到数据库中,形成用户
        User.objects.create_user(username=username,password=pwd,mobile=mobile)
        return Response({'code': 200, 'msg': '注册成功'})

2 后端路由

from django.urls import path
from . import views

urlpatterns = [
    path('check/username/<str:username>/',views.Check.as_view()),
    path('check/mobile/<str:mobile>/', views.CheckMobile.as_view()),
    path('image_code/<str:uuid>/',views.Imgcode.as_view()),
    path('check_image_code/',views.Imgcode2.as_view()),
    path('register/',views.Register.as_view())
]

3 总结

看不如写,写一遍比看十次效果还要好

最后

以上就是飘逸小蚂蚁为你收集整理的商城的注册(后端)一、注册的全部内容,希望文章能够帮你解决商城的注册(后端)一、注册所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部