Django集成腾讯云短信服务:从注册到发送的完整指南
本文详细介绍如何在Django项目中集成腾讯云短信服务,实现注册、登录及找回密码时的短信验证功能。内容涵盖腾讯云账户注册、应用与签名创建、微信订阅号申请、Python SDK安装及代码实现,并解析免费用户的短信频率限制策略,帮助开发者快速落地短信发送功能。
Django集成腾讯云短信服务概述
简介
在项目的注册、登录及找回密码环节中,短信验证码是提升安全性的关键组件。为此,我们选择集成腾讯云短信服务来满足这一需求。
选择腾讯云短信的主要优势在于其新用户福利:注册即赠送100条免费短信额度,足以满足初期开发和小规模测试的需求。
实现
腾讯云账户注册与基础配置
注册腾讯云
首先,需要注册一个腾讯云账户。该平台提供包括云服务器、云存储、云直播及云短信在内的多种云服务,功能丰富且易于集成。
注册地址为:https://cloud.tencent.com/
完成注册后,必须进行实名认证,这是开通高级云服务的前提条件。
开通云短信


应用创建与签名审核流程
在控制台创建应用,以便获取调用API所需的凭证。
创建应用后,请务必保存好生成的 SDK AppID 和 App Key,这两个参数将在后续Python代码发送短信时作为身份验证的关键信息使用。


创建签名
在腾讯云短信服务中,创建短信签名需经过审核。签名类型包括网站、APP、小程序和公众号。前三种类型通常需要提供复杂的企业资质证明,审核周期较长。对于个人开发者,使用公众号进行签名认证相对便捷,因此推荐个人项目采用此方式。
因此,我们需要先 申请一个公众号 然后 创建签名
申请微信订阅号
微信订阅号的注册地址为:https://mp.weixin.qq.com/


创建签名


创建模板

发送短信
完成上述准备工作后,我们将获得以下关键配置值:
# 创建应用,获取到 appid 和 appkey
# 创建签名,获取 签名内容
# 创建模板,获取 模板ID
Python SDK集成与代码实现
接下来,我们将使用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条、每小时最多5条、每天最多10条。

至此,关于Django集成腾讯云短信的实现介绍完毕。如需了解更多Django与腾讯云短信相关内容,建议查阅本站过往文章或继续浏览后续教程,感谢支持!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













