1、百度搜索 阿里云
2、点击阿里云 进入官网
3、登录/注册
4、搜索 短信服务
5、点击进入短信免费使用 领取免费短信
6、点击进入短信 控制台
7、申请 签名 和 模板
8、打开帮助文档 点击所选文档
9、根据Python 版本 来安装 阿里云SDK,然后点击 OpenAPI Explorer
10、点击 SendSms
填写PhoneNumbers( 要发送短信的手机号),
SignName(审核通过的 签名),
TemplateCode(模板号),
TemplateParam(模板的数据)
填写完后 :发起调用
11、封装发短信代码utils/MyBaseView.py

12、在 settings.py 定义
ALY_ACCESSKEY_ID = "LTAI4Fci9EX1YfowAARw8ekc"
ALY_ACCESSKEY_SECRET = 'ipIhfM6aqcDMcSr9VUMqhUNpzjVCvo'
13、短信 验证测试(联网)

14、用Postman 测式 是否能发送短信验证码
15、 短信发送和验证的逻辑
from libs.captcha.captcha import captcha
from django.shortcuts import render
from django.http.response import HttpResponse
from django_redis import get_redis_connection
import random
from rest_framework.views import APIView
from rest_framework.response import Response
from userapp.models import *
# ---------------- 获取 手机验证码 -----------------------
class SendSMSCodeNew(APIView):
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": 4005, "msg": "参数不全"})
# 逻辑与入库
# 3、验证图片验证码是否正确
# 3.1 连接 redis
redis_cli = get_redis_connection("img_code")
# 3.2 拿着uuid 获取图片验证码
redis_image_code = redis_cli.get(image_code_uuid).decode("utf-8")
# 3.3比对redis里的code 和发来的code 是否一致
if image_code.lower() != redis_image_code.lower():
return Response({"code": 4009, "msg": "图片验证码错误"})
# 使用阿里云发送短信
# 4.1 准备手机验证码
number = random.randint(100000, 999999)
data = {"code": number}
# 4.2使用封装好的接口发送短信
aly_send_code(phone, data)
# 5 将短信验证码绑定并存入redis
redis_cli.setex(phone, 60 * 60, number)
# 6.删除image_code
redis_cli.delete(image_code_uuid)
# 返回
return Response({"code": 0, "msg": "发送成功"})
版权声明:本文为wen_mei原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。