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

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

本文详细介绍如何在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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。