django项目---短信验证码
1,注册账号
https://yuntongxin.com/user/login
注册账号 并且绑定 测试的账号
保留开发者主账号的账号信息
2,使用容联云发送代码测试
from install ronglian_sms_sdk
然后在libs/rl_sms.py
from ronglian_sms_sdk import SmsSDK accId = '8a216da874af5fff017500bb9f8b1a05' accToken='6042ed9251ac48f496244c8f338e4712' appId='8a216da874af5fff017500bba0d31a0c' def send_message(phone, datas): sdk = SmsSDK(accId, accToken, appId) tid='1' resp = sdk.sendMessage(tid,phone,datas) return resp
3,添加路由
path('sms_codes/', views.SmsCodeView.as_view()),
4,写入视图函数
from rest_framework.permissions import AllowAny from rest_framework.views import APIView from rest_framework.response import Response import re import random from libs.rl_sms import send_message class SmsCodeView(APIView): permission_classes = (AllowAny,) def post(self, request): phone = request.data.get('phone') image_code = request.data.get('image_code') image_code_uuid=request.data.get('image_code_uuid') if not all([phone,image_code,image_code_uuid]): return Response({'code':999,'msg':'参数不全'}) if not re.match(r'^1[3456789]\d{9}$',phone): return Response({'code':999,'msg':'手机号不全'}) redis_client = get_redis_connection('img_code') phone_exists = redis_client.get(phone) if phone_exists: return Response({'code':999,'msg':'频繁发送,请稍后'}) redis_image_code = redis_client.get(image_code_uuid) if redis_image_code: redis_image_code = redis_image_code.decode() if image_code.upper() != redis_image_code: return Response({'code': 999, 'msg': '图片验证码不对'}) code = '%06d' % random.randint(0,999999) send_resp = send_message(phone,(code,"5")) pl = redis_client.pipeline() pl.setex(phone, 60*5 , code) pl.delete(image_code_uuid) pl.execute() return Response({'code':200,"msg":"短信成功您可以去死了"})
然后进行前端测试即可

浙公网安备 33010602011771号