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错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
Aug 22 Python
python实现下载指定网址所有图片的方法
Aug 08 Python
Python网络编程中urllib2模块的用法总结
Jul 12 Python
请不要重复犯我在学习Python和Linux系统上的错误
Dec 12 Python
python实现屏保计时器的示例代码
Aug 08 Python
使用Template格式化Python字符串的方法
Jan 22 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
Jun 19 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
Aug 08 Python
用python生成与调用cntk模型代码演示方法
Aug 26 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
Dec 26 Python
Python内置函数locals和globals对比
Apr 28 Python
Django Channel实时推送与聊天的示例代码
Apr 30 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/03/24 PHP
超级简单的php+mysql留言本源码
2009/11/11 PHP
深入PHP magic quotes的详解
2013/06/17 PHP
linux实现php定时执行cron任务详解
2013/12/24 PHP
基于PHP的简单采集数据入库程序【续篇】
2014/07/30 PHP
PHP之浮点数计算比较以及取整数不准确的解决办法
2015/07/29 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
asp.net网站开发中用jquery实现滚动浏览器滚动条加载数据(类似于腾讯微博)
2012/03/14 Javascript
Jquery 表单验证类介绍与实例
2013/06/09 Javascript
js数组方法扩展实现数组统计函数
2014/04/09 Javascript
JS控制输入框内字符串长度
2014/05/21 Javascript
JavaScript通过select动态更换图片的方法
2015/03/23 Javascript
JS模拟实现Select效果代码
2015/09/24 Javascript
AngularJS手动表单验证
2016/02/01 Javascript
vuejs开发组件分享之H5图片上传、压缩及拍照旋转的问题处理
2017/03/06 Javascript
jQuery返回定位插件详解
2017/05/15 jQuery
vue轮播图插件vue-awesome-swiper
2017/11/27 Javascript
JS对象与json字符串相互转换实现方法示例
2018/06/14 Javascript
vue 自定义指令自动获取文本框焦点的方法
2018/08/25 Javascript
JavaScript显式数据类型转换详解
2019/03/18 Javascript
微信网页登录逻辑与实现方法
2019/04/29 Javascript
微信小程序实现判断是分享到群还是个人功能示例
2019/05/03 Javascript
vue中监听返回键问题
2019/08/28 Javascript
AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
2020/03/13 Javascript
JS async 函数的含义和用法实例总结
2020/04/08 Javascript
解决ant design vue 表格a-table二次封装,slots渲染的问题
2020/10/28 Javascript
使用Python的Flask框架表单插件Flask-WTF实现Web登录验证
2016/07/12 Python
Python使用logging模块实现打印log到指定文件的方法
2018/09/05 Python
python贪吃蛇游戏代码
2020/04/18 Python
详解Python3之数据指纹MD5校验与对比
2019/06/11 Python
Python自定义一个异常类的方法
2019/06/27 Python
一篇文章搞定Python操作文件与目录
2019/08/13 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
2019/12/11 Python
世界上最值得信赖的多日游在线市场:TourRadar
2018/07/20 全球购物
Douglas意大利官网:购买香水和化妆品
2020/05/27 全球购物
《藏戏》教学反思
2016/02/23 职场文书