手机验证接口
from rest_framework.views import APIView
from .models import User
from utils.response import APIResponse
import re
# 注册逻辑:1.校验手机号是否存在 2.发送验证码 3.完成注册
class MobileAPIView(APIView):
def post(self, request, *args, **kwargs):
mobile = request.data.get(\'mobile\')
if not mobile or not re.match(r\'^1[3-9]\d{9}$\', mobile):
return APIResponse(1, \'数据有误\')
try:
User.objects.get(mobile=mobile)
return APIResponse(2, \'已注册\')
except:
return APIResponse(0, \'未注册\')
发送短信接口
# 发送验证码接口分析
from libs import txsms
from django.core.cache import cache
class SMSAPIView(APIView):
def post(self, request, *args, **kwargs):
# 1)拿到前台的手机号
mobile = request.data.get(\'mobile\')
if not mobile or not re.match(r\'^1[3-9]\d{9}$\', mobile):
return APIResponse(2, \'数据有误\')
# 2)调用txsms生成手机验证码
code = txsms.get_code()
# 3)调用txsms发送手机验证码
result = txsms.send_sms(mobile, code, 5)
# 4)失败反馈信息给前台
if not result:
return APIResponse(1, \'短信发送失败\')
# 5)成功服务器缓存手机验证码 - 用缓存存储(方便管理) - redis
cache.set(\'sms_%s\' % mobile, code, 5 * 60)
# 6)反馈成功信息给前台
return APIResponse(0, \'短信发送成功\')