Django实战项目-学习任务系统-发送短信通知

接着上期代码内容,继续完善优化系统功能。

本次增加发送短信通知功能,学习任务系统发布的任务,为了更加及时通知到学生用户,再原有发送邮件通知基础上,再加上手机短信通知功能。

第一步:开通短信通知服务

目前短信通知都是要收费的,本人还没发现免费的短信通知服务,如有网友知道免费资源请分享下。

本人选用的是腾讯云的短信通知服务,一年1千条短信40多元。其他还有阿里云,华为云等等。自己选择实惠好用的平台服务。

Django实战项目-学习任务系统-发送短信通知_第1张图片

1,创建短信签名

创建短信签名这步,目前比较严格了,前提条件,需要实名认证的网站,APP,公众号,小程序等,普通个人开发者要申请下来流程比较繁琐,具体的就不详说了,自己网上查询教程,不是本次重点。

Django实战项目-学习任务系统-发送短信通知_第2张图片

 2,创建正文模板

注意按照平台模板格式设置短信内容模板,腾讯云短信模板参数,是按照参数顺序1,2,3等数字来设置的。

Django实战项目-学习任务系统-发送短信通知_第3张图片

 3,等待审核

短信签名和模板提交申请,都要审核,一般10分钟左右,审核不通过,可以修改重新提交申请。

Django实战项目-学习任务系统-发送短信通知_第4张图片

 4,发送短信

短信签名和模板都审批通过了,就可以发送短信,简单测试下效果,平台有验证方式。

国内短信快速入门,参考官方教程:
https://cloud.tencent.com/document/product/382/37745

Django实战项目-学习任务系统-发送短信通知_第5张图片

Django实战项目-学习任务系统-发送短信通知_第6张图片

Django实战项目-学习任务系统-发送短信通知_第7张图片

第二步:编写短信通知代码

腾讯云官网短信调用方式有2种:API和SDK方式,不过都不太好用,网上找了一个开源的腾讯短信调用库比较好用。

qcloudsms_py是一个基于Python的,使用腾讯云短信服务的开源库。

1. 安装
在终端中执行以下命令,可以使用 pip 安装 qcloudsms_py:

pip install qcloudsms_py

2. 导入
将 qcloudsms_py 导入项目中:

from qcloudsms_py import SmsSingleSender, SmsMultiSender

3. 发送单条短信

使用 SmsSingleSender 类可以发送单条短信。以下是一个示例代码:

from qcloudsms_py import SmsSingleSender
from qcloudsms_py.httpclient import HTTPError

# 短信应用 SDK AppID
appid = 1412345679  # SDK AppID 以1400开头
# 短信应用 SDK AppKey
appkey = "******************"
# 需要发送短信的手机号码
phone_number = "12345678901"
# 短信模板 ID,需要在短信应用中申请
template_id = 1234  # NOTE: 这里使用的模板 ID 必须已经审核通过
# 短信签名内容,使用 UTF-8 编码,必须填写已审核通过的签名
sms_sign = "腾讯云"

try:
    ssender = SmsSingleSender(appid, appkey)
    # 指定模板单发
    result = ssender.send_with_param(phone_number, template_id, ["123456"], sign=sms_sign)
    print(result)

except HTTPError as e:
    print(e)

except Exception as e:
    print(e)

Django实战项目-学习任务系统-发送短信通知_第8张图片

Django实战项目-学习任务系统-发送短信通知_第9张图片

第三步:短信通知整合到学习系统中

1,编写短信发送工具方法

./mysite/study_system/smsutil.py

# 更多代码内容请关注weixin公众号: PandaCode辉

2,更新定时任务实现方法

 ./mysite/study_system/utils.py:

# 更多代码内容请关注weixin公众号: PandaCode辉

第四步:运行测试效果

1,定时发布学习任务

Django实战项目-学习任务系统-发送短信通知_第10张图片

 -------------------------------------------------end -------------------------------------------------

你可能感兴趣的:(Python,django,python,学习)