Django之腾讯云短信的实现
作者:you-men 时间:2021-05-15 04:30:54
简介
由于项目在注册、登录、找回密码 时需要发送短信验证的功能,我们使用腾讯云短信做。
为什么要用腾讯云短信呢? 因为注册就送 100条免费短信 的额度。
实现
注册腾讯云
注册一个腾讯云账户,腾讯云中提供了很多功能:云服务器、云存储你、云直播、云短信等很多功能。
注册地址: https://cloud.tencent.com/
注册并要实名认证
开通云短信
创建应用
创建应用并将应用中生成的 SDK AppID
和 App Key
复制下来,之后通过python发送短信时需要用到。
创建签名
在腾讯云短信签名时需要认证,认证需要填写签名类型:网站、APP、小程序、公众号,前三种需要提供企业资质等复杂的东西,个人公众号认证会比较便捷,所以推荐个人开发的话使用 公众号 进行签名。
so,咱们需要先 申请一个公众号
然后 创建签名
申请微信订阅号
注册地址: https://mp.weixin.qq.com/
创建签名
创建模板
发送短信
上述的准备工作做完中我们开通相关服务并获取到如下几个值:
# 创建应用,获取到 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条)。
来源:https://www.cnblogs.com/you-men/p/13088949.html
标签:Django,腾讯云,短信
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
垂直栅格与渐进式行距(上)
2009-04-01 18:30:00
python爬虫实例详解
2021-07-05 01:37:53
![](https://img.aspxhome.com/file/2023/8/81598_0s.png)
Python端口扫描简单程序
2022-12-26 02:19:45
ASP伪静态页简单教程
2007-09-28 14:35:00
gem install mysql报错checking for mysql_qu
2010-11-11 12:13:00
Python 函数list&read&seek详解
2022-02-14 03:04:21
![](https://img.aspxhome.com/file/2023/7/86447_0s.png)
python实现图书馆研习室自动预约功能
2022-03-22 02:04:44
![](https://img.aspxhome.com/file/2023/7/83777_0s.png)
python项目报错:bs4.FeatureNotFound: Couldn‘t find a tree builder with the features you requests
2022-07-17 05:39:02
![](https://img.aspxhome.com/file/2023/4/92114_0s.jpg)
SQL SERVER 2005中的同步复制技术
2009-01-05 13:44:00
一分钟带你掌握Python中pip的安装与使用方法
2021-02-10 10:38:12
![](https://img.aspxhome.com/file/2023/1/83921_0s.jpg)
python中pandas对多列进行分组统计的实现
2022-06-25 03:50:03
![](https://img.aspxhome.com/file/2023/8/93508_0s.png)
SQL Server与Oracle数据库在安全性上的异同
2009-02-01 14:49:00
CMS不要让MySQL为你流泪
2008-12-11 14:38:00
Python中字符串List按照长度排序
2023-11-28 21:43:02
Python代码注释规范代码实例解析
2023-03-15 04:59:56
Python实现求一个集合所有子集的示例
2022-09-01 20:56:51
ASP幻灯片
2009-09-04 18:05:00
PHP中round()函数对浮点数进行四舍五入的方法
2023-11-23 21:35:24
ASP去掉字符串头尾连续回车和空格的Function
2011-04-03 11:13:00
php中常量DIRECTORY_SEPARATOR用法深入分析
2023-09-06 00:23:27