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中操作列表之List.append()方法的使用
May 20 Python
python迭代器与生成器详解
Mar 10 Python
PyCharm配置mongo插件的方法
Nov 30 Python
Python实现繁?转为简体的方法示例
Dec 18 Python
Python中super函数用法实例分析
Mar 18 Python
详解Python下载图片并保存本地的两种方式
May 15 Python
python 多线程对post请求服务器测试并发的方法
Jun 13 Python
使用python进行波形及频谱绘制的方法
Jun 17 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
Feb 25 Python
使用OpenCV对车道进行实时检测的实现示例代码
Jun 19 Python
详解matplotlib绘图样式(style)初探
Feb 03 Python
python异步的ASGI与Fast Api实现
Jul 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
推荐几部必看的DC动画电影
2020/03/03 欧美动漫
PHP中cookies使用指南
2007/03/16 PHP
php calender(日历)二个版本代码示例(解决2038问题)
2013/12/24 PHP
PHP中使用localhost连接Mysql不成功的解决方法
2014/08/20 PHP
php实现RSA加密类实例
2015/03/26 PHP
php 升级到 5.3+ 后出现的一些错误,如 ereg(); ereg_replace(); 函数报错
2015/12/07 PHP
讲解WordPress中用于获取评论模板和搜索表单的PHP函数
2015/12/28 PHP
PHP代码重构方法漫谈
2018/04/17 PHP
php7连接MySQL实现简易查询程序的方法
2020/10/13 PHP
jquery validate.js表单验证的基本用法入门
2010/05/13 Javascript
SwfUpload在IE10上不出现上传按钮的解决方法
2013/06/25 Javascript
几种延迟加载JS代码的方法加快网页的访问速度
2013/10/12 Javascript
nodejs npm包管理的配置方法及常用命令介绍
2014/06/05 NodeJs
jquery可定制的在线UEditor编辑器
2015/11/17 Javascript
jQuery基于Ajax方式提交表单功能示例
2017/02/10 Javascript
iframe与主框架跨域相互访问实现方法
2017/09/14 Javascript
vue 列表页跳转详情页获取id以及详情页通过id获取数据
2019/03/27 Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
2020/06/08 Javascript
[46:32]Fnatic vs OG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
django限制匿名用户访问及重定向的方法实例
2018/02/07 Python
python如何生成各种随机分布图
2018/08/27 Python
python利用Opencv实现人脸识别功能
2019/04/25 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
2019/06/26 Python
Python转换时间的图文方法
2019/07/01 Python
python函数声明和调用定义及原理详解
2019/12/02 Python
python两个_多个字典合并相加的实例代码
2019/12/26 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
2020/02/10 Python
Sandro Paris美国官网:典雅别致的法国时尚服饰品牌
2017/12/26 全球购物
英国工作场所设备购买网站:Slingsby
2019/05/03 全球购物
新员工入职感言
2014/02/01 职场文书
开学典礼感言
2014/02/16 职场文书
银行先进个人事迹材料
2014/05/11 职场文书
乡镇三严三实学习心得体会
2014/10/13 职场文书
教师群众路线心得体会
2014/11/04 职场文书
放弃遗产继承公证书
2015/01/26 职场文书
基于tensorflow权重文件的解读
2021/05/26 Python