Django集成腾讯云短信服务:从注册到发送的完整指南

Cora
Cora
发布时间:2026-10-14 | 3人浏览过
原创

本文详细介绍如何在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与腾讯云短信相关内容,建议查阅本站过往文章或继续浏览后续教程,感谢支持!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表