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中的元祖(Tuple)和字典(Dict)
Apr 21 Python
Python3结合Dlib实现人脸识别和剪切
Jan 24 Python
和孩子一起学习python之变量命名规则
May 27 Python
Sanic框架请求与响应实例分析
Jul 16 Python
python实现接口并发测试脚本
Jun 25 Python
使用python分析统计自己微信朋友的信息
Jul 19 Python
python opencv 实现对图像边缘扩充
Jan 19 Python
实例代码讲解Python 线程池
Aug 24 Python
用python实现一个简单计算器(完整DEMO)
Oct 14 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
Feb 27 Python
提取视频中的音频 Python只需要三行代码!
May 10 Python
Python机器学习之基于Pytorch实现猫狗分类
Jun 08 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
php 三维饼图的实现代码
2008/09/28 PHP
微信公众平台网页授权获取用户基本信息中授权回调域名设置的变动
2014/10/21 PHP
PHP对象链式操作实现原理分析
2016/10/09 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
2017/08/10 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
php策略模式简单示例分析【区别于工厂模式】
2019/09/25 PHP
json的定义、标准格式及json字符串检验
2014/05/11 Javascript
JavaScript中的逻辑判断符&&、||与!介绍
2014/12/31 Javascript
JavaScript通过select动态更换图片的方法
2015/03/23 Javascript
jQuery实现延迟跳转的方法
2015/06/05 Javascript
第四章之BootStrap表单与图片
2016/04/25 Javascript
javascript创建对象的3种方法
2016/11/02 Javascript
js自定义QQ菜单效果
2017/01/10 Javascript
vue webuploader 文件上传组件开发
2017/09/23 Javascript
angularjs实现柱状图动态加载的示例
2017/12/11 Javascript
layer.close()关闭进度条和Iframe窗的方法
2018/08/17 Javascript
vue实现的组件兄弟间通信功能示例
2018/12/04 Javascript
Vue 2.0 中依赖注入 provide/inject组合实战
2019/06/20 Javascript
js+canvas实现两张图片合并成一张图片的方法
2019/11/01 Javascript
vue 实现单选框设置默认选中值
2019/11/07 Javascript
element el-table表格的二次封装实现(附表格高度自适应)
2021/01/19 Javascript
[00:44]TI7不朽珍藏III——军团指挥官不朽展示
2017/07/15 DOTA
使用Python脚本来控制Windows Azure的简单教程
2015/04/16 Python
Python通过调用有道翻译api实现翻译功能示例
2018/07/19 Python
Python读取txt内容写入xls格式excel中的方法
2018/10/11 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
2019/09/24 Python
解决Windows下python和pip命令无法使用的问题
2020/08/31 Python
python能做哪些生活有趣的事情
2020/09/09 Python
python编写扎金花小程序的实例代码
2021/02/23 Python
党课学习思想汇报
2014/01/02 职场文书
化工操作工岗位职责
2014/04/29 职场文书
学校安全防火方案
2014/06/07 职场文书
公司领导九九重阳节发言稿2014
2014/09/25 职场文书
2016秋季田径运动会广播稿
2015/12/21 职场文书
MySQL GRANT用户授权的实现
2021/06/18 MySQL
python 网络编程要点总结
2021/06/18 Python