登录注册
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:
简单测试:
携带正确的已存在的手机号: