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获取一组汉字拼音首字母的方法
Jul 01 Python
Python 基于Twisted框架的文件夹网络传输源码
Aug 28 Python
python实现折半查找和归并排序算法
Apr 14 Python
python 表达式和语句及for、while循环练习实例
Jul 07 Python
python 判断是否为正小数和正整数的实例
Jul 23 Python
Python实现破解12306图片验证码的方法分析
Dec 29 Python
python读取LMDB中图像的方法
Jul 02 Python
python设置值及NaN值处理方法
Jul 03 Python
Python求一批字符串的最长公共前缀算法示例
Mar 02 Python
python3 实现的对象与json相互转换操作示例
Aug 17 Python
python绘制彩虹图
Dec 16 Python
Python接口测试环境搭建过程详解
Jun 29 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绘图中显示不出图片的原因及解决
2014/03/05 PHP
ThinkPHP单字母函数(快捷方法)使用总结
2014/07/23 PHP
php实现图片上传时添加文字和图片水印技巧
2020/04/18 PHP
php mysql procedure实现获取多个结果集的方法【基于thinkPHP】
2016/11/09 PHP
php微信公众号开发(3)php实现简单微信文本通讯
2016/12/15 PHP
ie和firefox中img对象区别的困惑
2006/12/27 Javascript
IE7中javascript操作CheckBox的checked=true不打勾的解决方法
2009/12/07 Javascript
Jquery+JSon 无刷新分页实现代码
2010/04/01 Javascript
jquery.tmpl JQuery模板插件
2011/10/10 Javascript
浅析Javascript使用include/require
2013/11/13 Javascript
ExtJs动态生成treepanel的Json格式
2015/07/19 Javascript
JavaScript中eval函数的问题
2016/01/31 Javascript
jquery+ajax+text文本框实现智能提示完整实例
2016/07/09 Javascript
使用JQuery中的trim()方法去掉前后空格
2016/09/16 Javascript
Javascript中call,apply,bind方法的详解与总结
2016/12/12 Javascript
Bootstrap下拉菜单样式
2017/02/07 Javascript
老生常谈js中0到底是 true 还是 false
2017/03/08 Javascript
微信小程序-滚动消息通知的实例代码
2017/08/03 Javascript
Bootstrap4如何定制自己的颜色和风格
2018/02/26 Javascript
Angular5中调用第三方js插件的方法
2018/02/26 Javascript
JavaScript根据json生成html表格的示例代码
2018/10/24 Javascript
jquery插件开发模式实例详解
2019/07/20 jQuery
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
2020/04/08 Javascript
python实现的jpg格式图片修复代码
2015/04/21 Python
尝试用最短的Python代码来实现服务器和代理服务器
2016/06/23 Python
Python提取网页中超链接的方法
2016/09/18 Python
Django 根据数据模型models创建数据表的实例
2018/05/27 Python
Python中请不要再用re.compile了
2019/06/30 Python
利用HTML5+css3+jquery+weui实现仿微信聊天界面功能
2018/01/08 HTML / CSS
使用canvas压缩图片大小的方法示例
2019/08/02 HTML / CSS
跨域修改iframe页面内容详解
2019/10/31 HTML / CSS
英国最大的电子产品和家电零售企业:Currys PC World
2016/09/24 全球购物
实现strstr功能,即在父串中寻找子串首次出现的位置
2016/08/05 面试题
师德师风演讲稿
2014/05/05 职场文书
园艺专业毕业生求职信
2014/09/02 职场文书
房地产销售员岗位职责
2015/04/11 职场文书