登录注册

 1. 登录注册页面分析

用户板块需要写的接口

  1. 用户名密码登录(多方式登录)

  2. 获取手机验证码接口

  3. 手机号+验证码登录

  4. 注册接口

  5. 验证手机号是否存在接口

1.1 验证手机号是否存在接口

视图类:

from django.shortcuts import render

# Create your views here.
from django.utils.datastructures import MultiValueDictKeyError

from rest_framework.viewsets import ViewSet
from rest_framework.decorators import action
from .models import User
from utils.common_response import APIResponse


class MobileView(ViewSet):
    # @action(methods=['GET'], detail=False)
    # def check_mobile(self, request, *args, **kwargs):
    #     # 取出前端传入手机号
    #     mobile = request.query_params.get('mobile')
    #     # 去数据中查询,是否存在即可
    #     user = User.objects.filter(mobile=mobile).first()
    #     if user:
    #         return APIResponse(msg='手机号存在')
    #     else:
    #         return APIResponse(code=101, msg='手机号不存在')
    @action(methods=['GET'], detail=False)
    def check_mobile(self, request, *args, **kwargs):
        try:
            # 取出前端传入手机号
            mobile = request.query_params['mobile']
            # 去数据中查询,是否存在即可
            User.objects.get(mobile=mobile)  # 有且只有一个才不报错,否则报错
        except MultiValueDictKeyError as e:
            raise Exception('您没有携带手机号')
        # except  ObjectDoesNotExis as e:
        #         #     raise Exception('手机号不存')
        except Exception as e:
            raise Exception('未知错误,请联系系统管理员')
        return APIResponse(msg='手机号存在')

user app下的路由:

from rest_framework.routers import SimpleRouter
from .views import MobileView

router = SimpleRouter()
# 127.0.0.1:8000/api/v1/user/mobile/check_mobile/   ---get 请求
router.register('mobile', MobileView, 'mobile')

urlpatterns = [

]
urlpatterns += router.urls

urls:

 

简单测试:

携带正确的已存在的手机号:

 

posted @ 2023-10-12 21:20  Maverick-Lucky  阅读(54)  评论(0)    收藏  举报