1. 容联云短信平台操作

1.容联云官网

  • 容联云通讯网址:容联云通讯_短信平台、手机验证码、语音验证码、IM即时通讯、云呼叫系统等互联网通信服务
  • 注册并登陆

2.容联云管理控制台

3.添加容联云测试手机号

4.短信模板

免费开发测试使用的模板ID为1,形式为:【云通讯】您使用的是云通讯短信模板,您的验证码是{1},请于{2}分钟内正确输入。

2. 短信发送测试

1.集成短信SDK到库中

CCPRestSDK.py:由容联云通讯开发者编写的官方SDK文件,包括发送模板短信的方法

ccp_sms.py:调用发送模板短信的方法

2.修改相应参数进行测试

3.进行测试

3. 短信验证码后端接口设计

1.请求方式

选项 方案
请求方法 GET
请求地址 /smscode/?mobile=xxxxℑ_code=xxxx&uuid=xxxxx

2.请求参数:路径参数

参数名 类型 是否必传 说明
mobile string 手机号
image_code string 图形验证码
uuid string 唯一编号

3.响应结果:JSON

字段 说明
code 状态码
errmsg 错误信息

4. 短信验证码后端逻辑实现

from django.http import JsonResponse
from utils.response_code import RETCODE
from random import randint
from libs.yuntongxun.sms import CCP
import logging
logger=logging.getLogger('django')class SmsCodeView(View):def get(self,request):# 接收参数image_code_client = request.GET.get('image_code')uuid = request.GET.get('uuid')mobile=request.GET.get('mobile')# 校验参数if not all([image_code_client, uuid,mobile]):return JsonResponse({'code': RETCODE.NECESSARYPARAMERR, 'errmsg': '缺少必传参数'})# 创建连接到redis的对象redis_conn = get_redis_connection('default')# 提取图形验证码image_code_server = redis_conn.get('img:%s' % uuid)if image_code_server is None:# 图形验证码过期或者不存在return JsonResponse({'code': RETCODE.IMAGECODEERR, 'errmsg': '图形验证码失效'})# 删除图形验证码,避免恶意测试图形验证码try:redis_conn.delete('img:%s' % uuid)except Exception as e:logger.error(e)# 对比图形验证码image_code_server = image_code_server.decode()  # bytes转字符串if image_code_client.lower() != image_code_server.lower():  # 转小写后比较return JsonResponse({'code': RETCODE.IMAGECODEERR, 'errmsg': '输入图形验证码有误'})# 生成短信验证码:生成6位数验证码sms_code = '%06d' % randint(0, 999999)#将验证码输出在控制台,以方便调试logger.info(sms_code)# 保存短信验证码到redis中,并设置有效期redis_conn.setex('sms:%s' % mobile, 300, sms_code)# 发送短信验证码CCP().send_template_sms(mobile, [sms_code, 5],1)# 响应结果return JsonResponse({'code': RETCODE.OK, 'errmsg': '发送短信成功'})

5. 添加response_code文件

在工程中新建utils包,将response_code文件复制到utils中

Django博客系统(短信验证码)相关推荐

  1. Django博客系统(忘记密码)

    1. 忘记密码页面展示 1.在users.views.py文件中定义视图 from django.views import Viewclass ForgetPasswordView(View):def ...

  2. Django博客系统项目需求分析

    项目需求分析 需求分析原因 项目中,需求驱动开发.即开发人员需要以需求为目标来实现业务逻辑. 需求分析方式 企业中,借助产品原型图分析需求. 需求分析完后,前端按照产品原型图开发前端页面,后端开发对应 ...

  3. Django博客系统注册(定义用户模型类)

    1. Django默认用户认证系统 Django自带用户认证系统 它处理用户账号.组.权限以及基于cookie的用户会话. Django认证系统位置 django.contrib.auth包含认证框架 ...

  4. Django博客系统(详情评论数据展示)

    1. 查询评论数据并展示 1.查询评论数据并通过context传递给HTML from home.models import Comment from django.shortcuts import ...

  5. Django博客系统(详情页面展示)

    1. 页面展示 1.在home.views.py文件中定义视图 from django.views import Viewclass DetailView(View):def get(self,req ...

  6. Django博客系统(首页文章数据展示)

    1. 查询分页数据并展示 1.查询分类文章数据并通过context传递给HTML from home.models import ArticleCategory,Article from django ...

  7. Django博客系统(首页分类数据展示)

    1. 首页接口设计 1.请求方式 选项 方案 请求方法 GET 请求地址 /?cat_id=xxx&page_num=xxx&page_size=xxx 2.请求参数 参数名 类型 是 ...

  8. Django博客系统(推荐文章数据展示)

    1. 添加文章浏览量数据 1.每次请求文章详情时给浏览量+1 try:article=Article.objects.get(id=id) except Article.DoesNotExist:re ...

  9. Django博客系统(博客保存)

    1. 博客保存接口设计 1.请求方式 选项 方案 请求方法 POST 请求地址 /writeblog/ 2.请求参数:表单 参数名 类型 是否必传 说明 title string 是 标题 avata ...

最新文章

  1. 爬虫python编程与cvi编程_与爬虫无关,简单的用python进行科学运算
  2. Android之PullToRefresh控件源码解析
  3. modbus tcp 入门详解
  4. java path 注解_@PathVariable注解的使用和@Requestparam
  5. OCP之5 管理数据库存储结构
  6. X 分钟速成 Python
  7. Intel发6款全新9代i9/i7/i5 CPU:巅峰8核
  8. python 新建文件 hdfs_python使用hdfs3模块对hdfs进行操作详解
  9. 科技部部长:院士头衔不是学术不端挡箭牌!已有多位院士、校长等被“拿下”...
  10. CF1062F Upgrading Cities
  11. Spring Security 5
  12. 使用ffmpeg修改视频文件的分辨率
  13. 此计算机未运行正版windows,最近一开机就有以下之警告:此Windows副本未通过正版Windows验证。...
  14. 计算两个时间相差多少时间--天、小时、分、秒
  15. 诺基亚X6 打开开发者模式
  16. 工业机器人 郝卫东_智能保安巡逻机器人论文
  17. 华为平板可以安装python_Python镜像怎么配置_Python镜像下载-华为云
  18. 【Endnote】在论文中插入参考文献,并将插入参考文献的序号格式改为[1] [2] [3] 或1,2,3
  19. Matlab在不同坐标系中绘图(对数、极坐标、双轴图)以及极坐标和直角坐标的相互转换
  20. 软件安全测试之SQL注入

热门文章

  1. 透过计算机视觉,看看苏伊士运河堵船
  2. 举个例子,如何用GCN图卷积神经网络实现摔倒监测?
  3. 达沃斯议程对话会:张亚勤解读人工智能发展 3R 原则
  4. 身为面向对象编程、移动计算机之父的他,为何说“计算机革命还没真正到来”?...
  5. 基于轮廓调整的SOTA实例分割方法,速度达32.3fps | CVPR 2020
  6. Python爬取近十万条程序员招聘数据,告诉你哪类人才和技能最受热捧! | 原力计划...
  7. 掌握深度学习,为什么要用PyTorch、TensorFlow框架?
  8. 扶稳!四大步“上手”超参数调优教程,就等你出马了 | 附完整代码
  9. 别光发Paper,搞点实际问题
  10. 人工智能时代,开发者是逆袭还是走向末日?