相关文章推荐
成熟的火柴  ·  數據可視化:Django + pandas ...·  3 周前    · 
坏坏的西红柿  ·  Django 教程 11:部署 ...·  6 天前    · 
酒量小的葡萄酒  ·  Visual Studio 中的 ...·  6 天前    · 
八块腹肌的课本  ·  github项目自荐(django项目)_如 ...·  6 天前    · 
直爽的牛肉面  ·  【故障解决】ORA-06502: ...·  6 月前    · 
捣蛋的手术刀  ·  opencv mat convertto ...·  2 年前    · 
爱玩的拖把  ·  cv::Mat 与 float 互换,实现 ...·  2 年前    · 
没有腹肌的胡萝卜  ·  Javascript排序包含年份的字符串数组 ...·  2 年前    · 
Code  ›  03 . Django之短信开发者社区
移动互联网 软件 云计算 django
https://cloud.tencent.com/developer/article/1706650
奔放的黄瓜
1 月前
iginkgo18

03 . Django之腾讯云短信

腾讯云
开发者社区
文档 建议反馈 控制台
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
发布
首页
学习
活动
专区
圈层
工具
MCP广场
返回腾讯云官网
iginkgo18
首页
学习
活动
专区
圈层
工具
MCP广场
返回腾讯云官网
社区首页 > 专栏 > 03 . Django之腾讯云短信

03 . Django之腾讯云短信

作者头像
iginkgo18
修改 于 2021-05-14 15:15:41
修改 于 2021-05-14 15:15:41
14.2K 0 0
代码可运行
举报
文章被收录于专栏: devops_k8s devops_k8s
运行总次数: 0
代码可运行
简介

由于项目在注册、登录、找回密码 时需要发送短信验证的功能,我们使用腾讯云短信做。 为什么要用腾讯云短信呢? 因为注册就送 100条免费短信 的额度。

实现
注册腾讯云

注册一个腾讯云账户,腾讯云中提供了很多功能:云服务器、云存储你、云直播、云短信等很多功能。 注册地址: https://cloud.tencent.com/ 注册并要实名认证

开通云短信
创建应用

创建应用并将应用中生成的 SDK AppID 和 App Key 复制下来,之后通过python发送短信时需要用到。

创建签名

在腾讯云短信签名时需要认证,认证需要填写签名类型:网站、APP、小程序、公众号,前三种需要提供企业资质等复杂的东西,个人公众号认证会比较便捷,所以推荐个人开发的话使用 公众号 进行签名。 so,咱们需要先 申请一个公众号 然后 创建签名

申请微信订阅号

注册地址: https://mp.weixin.qq.com/

创建签名
创建模板
发送短信

上述的准备工作做完中我们开通相关服务并获取到如下几个值:

代码语言: javascript
代码 运行次数: 0
运行
复制
# 创建应用,获取到 appid 和 appkey
# 创建签名,获取 签名内容
# 创建模板,获取 模板ID

接下来开始使用Python发送短信。

安装SDK

代码语言: javascript
代码 运行次数: 0
运行
复制
 pip install qcloudsms_py

基于SDK发送短信

代码语言: javascript
代码 运行次数: 0
运行
复制
#!/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 = "8cc5b87123y423433412387930004"  # 自己应用Key
    sms_sign = "幽梦DevOps"  # 自己腾讯云创建签名时填写的签名内容(使用公众号的话这个值一般是公众号全称或简称)
    sender = SmsSingleSender(appid, appkey)
        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 = "幽梦DevOps"
    sender = SmsMultiSender(appid, appkey)
        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("18621048481", 548760, [666, ])
 
推荐文章
成熟的火柴  ·  數據可視化:Django + pandas + ECharts + 前後端分離 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天
3 周前
坏坏的西红柿  ·  Django 教程 11:部署 Django 到生产环境 - 学习 Web 开发 | MDN
6 天前
酒量小的葡萄酒  ·  Visual Studio 中的 Django 教程步骤 1,Django 基础知识 | Microsoft Learn
6 天前
八块腹肌的课本  ·  github项目自荐(django项目)_如何找giyhub上的django项目
6 天前
直爽的牛肉面  ·  【故障解决】ORA-06502: PL/SQL: numeric or value error_51CTO博客_ORA-06502
6 月前
捣蛋的手术刀  ·  opencv mat convertto c++-掘金
2 年前
爱玩的拖把  ·  cv::Mat 与 float 互换,实现 argmax 得到像素点分类 - 简书
2 年前
没有腹肌的胡萝卜  ·  Javascript排序包含年份的字符串数组,使用 - 问答 - 腾讯云开发者社区-腾讯云
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号