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中的变量、引用、拷贝和作用域的问题
Apr 07 Python
理解Python中的类与实例
Apr 27 Python
python PIL模块与随机生成中文验证码
Feb 27 Python
python实现字典(dict)和字符串(string)的相互转换方法
Mar 01 Python
Python使用selenium实现网页用户名 密码 验证码自动登录功能
May 16 Python
pyqt5 实现在别的窗口弹出进度条
Jun 18 Python
在python plt图表中文字大小调节的方法
Jul 08 Python
将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例
Jan 04 Python
使用Python 自动生成 Word 文档的教程
Feb 13 Python
找Python安装目录,设置环境路径以及在命令行运行python脚本实例
Mar 09 Python
Python super()方法原理详解
Mar 31 Python
python基于turtle绘制几何图形
Jun 15 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
Session保存到数据库的php类分享
2011/10/24 PHP
PHP使用反射机制实现查找类和方法的所在位置
2016/04/22 PHP
ImageFlow可鼠标控制图片滚动
2008/01/30 Javascript
jQuery EasyUI API 中文文档 - Tabs标签页/选项卡
2011/10/01 Javascript
JS获取单击按钮单元格所在行的信息
2014/06/17 Javascript
理解javascript中的回调函数(callback)
2014/09/02 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
2015/09/17 Javascript
浅谈js内置对象Math的属性和方法(推荐)
2016/09/19 Javascript
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
基于JQuery的购物车添加删除以及结算功能示例
2017/03/08 Javascript
微信小程序实现登录页云层漂浮的动画效果
2017/05/05 Javascript
使用Angular CLI从蓝本生成代码详解
2018/03/24 Javascript
让你5分钟掌握9个JavaScript小技巧
2018/06/09 Javascript
JavaScript的级联函数用法简单示例【链式调用】
2019/03/26 Javascript
js实现多个标题吸顶效果
2020/01/08 Javascript
python中__call__内置函数用法实例
2015/06/04 Python
批量获取及验证HTTP代理的Python脚本
2017/04/23 Python
Python 使用folium绘制leaflet地图的实现方法
2019/07/05 Python
python pillow模块使用方法详解
2019/08/30 Python
如何将PySpark导入Python的放实现(2种)
2020/04/26 Python
Python使用pickle进行序列化和反序列化的示例代码
2020/09/22 Python
paramiko使用tail实时获取服务器的日志输出详解
2020/12/06 Python
CSS3 渐变(Gradients)之CSS3 线性渐变
2016/07/08 HTML / CSS
css3.0 图形构成实例练习一
2013/03/19 HTML / CSS
美国大城市最热门旅游景点门票:CityPASS
2016/12/16 全球购物
linux面试题参考答案(6)
2014/08/29 面试题
经理秘书岗位职责
2013/11/14 职场文书
小学运动会广播稿200字(十二篇)
2014/01/14 职场文书
资金主管岗位职责范本
2014/03/04 职场文书
师范生自荐信模板
2014/05/28 职场文书
六一儿童节标语
2014/10/08 职场文书
丧事答谢词大全
2015/09/30 职场文书
PostgreSQL将数据加载到buffer cache中操作方法
2021/04/16 PostgreSQL
html实现弹窗的实例
2021/06/09 HTML / CSS
SpringCloud Alibaba 基本开发框架搭建过程
2021/06/13 Java/Android
numpy array找出符合条件的数并赋值的示例代码
2022/06/01 Python