Django之腾讯云短信的实现


Posted in Python onJune 12, 2020

简介

由于项目在注册、登录、找回密码 时需要发送短信验证的功能,我们使用腾讯云短信做。

为什么要用腾讯云短信呢? 因为注册就送 100条免费短信 的额度。

实现

注册腾讯云

注册一个腾讯云账户,腾讯云中提供了很多功能:云服务器、云存储你、云直播、云短信等很多功能。

注册地址: https://cloud.tencent.com/

注册并要实名认证

开通云短信

Django之腾讯云短信的实现

Django之腾讯云短信的实现

创建应用

创建应用并将应用中生成的 SDK AppIDApp Key 复制下来,之后通过python发送短信时需要用到。

Django之腾讯云短信的实现

Django之腾讯云短信的实现

创建签名

在腾讯云短信签名时需要认证,认证需要填写签名类型:网站、APP、小程序、公众号,前三种需要提供企业资质等复杂的东西,个人公众号认证会比较便捷,所以推荐个人开发的话使用 公众号 进行签名。

so,咱们需要先 申请一个公众号 然后 创建签名

申请微信订阅号

注册地址: https://mp.weixin.qq.com/

Django之腾讯云短信的实现

Django之腾讯云短信的实现

创建签名

Django之腾讯云短信的实现

Django之腾讯云短信的实现

创建模板

Django之腾讯云短信的实现

发送短信

上述的准备工作做完中我们开通相关服务并获取到如下几个值:

# 创建应用,获取到 appid 和 appkey
# 创建签名,获取 签名内容
# 创建模板,获取 模板ID

接下来开始使用Python发送短信。

安装SDK

pip install qcloudsms_py

基于SDK发送短信

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import ssl
# ssl._create_default_https_context = ssl._create_unverified_context
from qcloudsms_py import SmsMultiSender, SmsSingleSender
from qcloudsms_py.httpclient import HTTPError
def send_sms_single(phone_num, template_id, template_param_list):
  """
  单条发送短信
  :param phone_num: 手机号
  :param template_id: 腾讯云短信模板ID
  :param template_param_list: 短信模板所需参数列表,例如:【验证码:{1},描述:{2}】,则传递参数 [888,666]按顺序去格式化模板
  :return:
  """
  appid = 112142311 # 自己应用ID
  appkey = "8cc5b87123y423423412387930004" # 自己应用Key
  sms_sign = "Python之路" # 自己腾讯云创建签名时填写的签名内容(使用公众号的话这个值一般是公众号全称或简称)
  sender = SmsSingleSender(appid, appkey)
  try:
    response = sender.send_with_param(86, phone_num, template_id, template_param_list, sign=sms_sign)
  except HTTPError as e:
    response = {'result': 1000, 'errmsg': "网络异常发送失败"}
  return response
def send_sms_multi(phone_num_list, template_id, param_list):
  """
  批量发送短信
  :param phone_num_list:手机号列表
  :param template_id:腾讯云短信模板ID
  :param param_list:短信模板所需参数列表,例如:【验证码:{1},描述:{2}】,则传递参数 [888,666]按顺序去格式化模板
  :return:
  """
  appid = 112142311
  appkey = "8cc5b87123y423423412387930004"
  sms_sign = "Python之路"
  sender = SmsMultiSender(appid, appkey)
  try:
    response = sender.send_with_param(86, phone_num_list, template_id, param_list, sign=sms_sign)
  except HTTPError as e:
    response = {'result': 1000, 'errmsg': "网络异常发送失败"}
  return response
if __name__ == '__main__':
  result1 = send_sms_single("15131255089", 548760, [666, ])
  print(result1)
  result2 = send_sms_single( ["15131255089", "15131255089", "15131255089", ],548760, [999, ])
  print(result2)

关于频率限制

腾讯云短信后台可以进行 短信频率 的限制。

但是,由于我们是免费用户所以无法进行设置,只能使用默认的配置(30秒发1条/1小时发5条/1天发10条)。

Django之腾讯云短信的实现

到此这篇关于Django之腾讯云短信的实现的文章就介绍到这了,更多相关Django 腾讯云短信内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
用Python的Flask框架结合MySQL写一个内存监控程序
Nov 07 Python
利用Python获取操作系统信息实例
Sep 02 Python
python下读取公私钥做加解密实例详解
Mar 29 Python
Pycharm学习教程(1) 定制外观
May 02 Python
在pycharm上mongodb配置及可视化设置方法
Nov 30 Python
华为校园招聘上机笔试题 扑克牌大小(python)
Apr 22 Python
python的命名规则知识点总结
Oct 04 Python
python 解决cv2绘制中文乱码问题
Dec 23 Python
Python HTMLTestRunner如何下载生成报告
Sep 04 Python
Python unittest生成测试报告过程解析
Sep 08 Python
Python爬取豆瓣数据实现过程解析
Oct 27 Python
Python爬虫入门案例之爬取去哪儿旅游景点攻略以及可视化分析
Oct 16 Python
python相对企业语言优势在哪
Jun 12 #Python
keras实现基于孪生网络的图片相似度计算方式
Jun 11 #Python
为什么说python适合写爬虫
Jun 11 #Python
python新手学习使用库
Jun 11 #Python
keras实现多种分类网络的方式
Jun 11 #Python
python的help函数如何使用
Jun 11 #Python
新手学python应该下哪个版本
Jun 11 #Python
You might like
9段PHP实用功能的代码推荐
2014/10/14 PHP
Yii框架关联查询with用法分析
2014/12/02 PHP
Document对象内容集合(比较全)
2010/09/06 Javascript
jQuery EasyUI API 中文文档 - Draggable 可拖拽
2011/09/29 Javascript
javascript 日期时间 转换的方法
2013/02/21 Javascript
JavaScript通过正则表达式实现表单验证电话号码
2014/03/07 Javascript
jquery任意位置浮动固定层插件用法实例
2015/05/29 Javascript
jQuery解析json格式数据简单实例
2016/01/22 Javascript
纯JavaScript 实现flappy bird小游戏实例代码
2016/09/27 Javascript
js自定义瀑布流布局插件
2017/05/16 Javascript
详解vue express启动数据服务
2017/07/05 Javascript
浅谈SpringMVC中post checkbox 多选框value的值(隐藏域方式)
2018/01/08 Javascript
js数组去重的N种方法(小结)
2018/06/07 Javascript
Angular父子组件通过服务传参的示例方法
2018/10/31 Javascript
[40:57]TI4 循环赛第二日 iG vs EG
2014/07/11 DOTA
[04:47]DOTA2-潍坊风行电子俱乐部探秘
2014/08/08 DOTA
跟老齐学Python之让人欢喜让人忧的迭代
2014/10/02 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
2019/06/17 Python
使用django的ORM框架按月统计近一年内的数据方法
2019/07/18 Python
python cv2截取不规则区域图片实例
2019/12/21 Python
如何通过Django使用本地css/js文件
2020/01/20 Python
Python实现电视里的5毛特效实例代码详解
2020/05/15 Python
手工制作的音乐盒:Music Box Attic
2019/09/05 全球购物
JavaScript实现前端网页版倒计时
2021/03/24 Javascript
高中三年学习生活的自我评价
2013/10/10 职场文书
电大物流学生的自我评价
2013/10/25 职场文书
会计专业自荐信范文
2013/12/02 职场文书
生产厂厂长岗位职责
2013/12/25 职场文书
文明寝室申报材料
2014/05/12 职场文书
三好学生个人先进事迹材料
2014/05/17 职场文书
争做文明公民倡议书
2014/08/29 职场文书
教师作风建设剖析材料
2014/10/11 职场文书
亲属关系公证书样本
2015/01/23 职场文书
酒店办公室主任岗位职责
2015/04/01 职场文书
给校长的建议书作文500字
2015/09/14 职场文书
创业计划书之干洗店
2019/09/10 职场文书