Django博客系统(短信验证码)
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博客系统(短信验证码)相关推荐
- Django博客系统(忘记密码)
1. 忘记密码页面展示 1.在users.views.py文件中定义视图 from django.views import Viewclass ForgetPasswordView(View):def ...
- Django博客系统项目需求分析
项目需求分析 需求分析原因 项目中,需求驱动开发.即开发人员需要以需求为目标来实现业务逻辑. 需求分析方式 企业中,借助产品原型图分析需求. 需求分析完后,前端按照产品原型图开发前端页面,后端开发对应 ...
- Django博客系统注册(定义用户模型类)
1. Django默认用户认证系统 Django自带用户认证系统 它处理用户账号.组.权限以及基于cookie的用户会话. Django认证系统位置 django.contrib.auth包含认证框架 ...
- Django博客系统(详情评论数据展示)
1. 查询评论数据并展示 1.查询评论数据并通过context传递给HTML from home.models import Comment from django.shortcuts import ...
- Django博客系统(详情页面展示)
1. 页面展示 1.在home.views.py文件中定义视图 from django.views import Viewclass DetailView(View):def get(self,req ...
- Django博客系统(首页文章数据展示)
1. 查询分页数据并展示 1.查询分类文章数据并通过context传递给HTML from home.models import ArticleCategory,Article from django ...
- Django博客系统(首页分类数据展示)
1. 首页接口设计 1.请求方式 选项 方案 请求方法 GET 请求地址 /?cat_id=xxx&page_num=xxx&page_size=xxx 2.请求参数 参数名 类型 是 ...
- Django博客系统(推荐文章数据展示)
1. 添加文章浏览量数据 1.每次请求文章详情时给浏览量+1 try:article=Article.objects.get(id=id) except Article.DoesNotExist:re ...
- Django博客系统(博客保存)
1. 博客保存接口设计 1.请求方式 选项 方案 请求方法 POST 请求地址 /writeblog/ 2.请求参数:表单 参数名 类型 是否必传 说明 title string 是 标题 avata ...
最新文章
- 爬虫python编程与cvi编程_与爬虫无关,简单的用python进行科学运算
- Android之PullToRefresh控件源码解析
- modbus tcp 入门详解
- java path 注解_@PathVariable注解的使用和@Requestparam
- OCP之5 管理数据库存储结构
- X 分钟速成 Python
- Intel发6款全新9代i9/i7/i5 CPU:巅峰8核
- python 新建文件 hdfs_python使用hdfs3模块对hdfs进行操作详解
- 科技部部长:院士头衔不是学术不端挡箭牌!已有多位院士、校长等被“拿下”...
- CF1062F Upgrading Cities
- Spring Security 5
- 使用ffmpeg修改视频文件的分辨率
- 此计算机未运行正版windows,最近一开机就有以下之警告:此Windows副本未通过正版Windows验证。...
- 计算两个时间相差多少时间--天、小时、分、秒
- 诺基亚X6 打开开发者模式
- 工业机器人 郝卫东_智能保安巡逻机器人论文
- 华为平板可以安装python_Python镜像怎么配置_Python镜像下载-华为云
- 【Endnote】在论文中插入参考文献,并将插入参考文献的序号格式改为[1] [2] [3] 或1,2,3
- Matlab在不同坐标系中绘图(对数、极坐标、双轴图)以及极坐标和直角坐标的相互转换
- 软件安全测试之SQL注入
热门文章
- 透过计算机视觉,看看苏伊士运河堵船
- 举个例子,如何用GCN图卷积神经网络实现摔倒监测?
- 达沃斯议程对话会:张亚勤解读人工智能发展 3R 原则
- 身为面向对象编程、移动计算机之父的他,为何说“计算机革命还没真正到来”?...
- 基于轮廓调整的SOTA实例分割方法,速度达32.3fps | CVPR 2020
- Python爬取近十万条程序员招聘数据,告诉你哪类人才和技能最受热捧! | 原力计划...
- 掌握深度学习,为什么要用PyTorch、TensorFlow框架?
- 扶稳!四大步“上手”超参数调优教程,就等你出马了 | 附完整代码
- 别光发Paper,搞点实际问题
- 人工智能时代,开发者是逆袭还是走向末日?