Django实战项目-学习任务系统-发送短信通知
接着上期代码内容,继续完善优化系统功能。
本次增加发送短信通知功能,学习任务系统发布的任务,为了更加及时通知到学生用户,再原有发送邮件通知基础上,再加上手机短信通知功能。
第一步:开通短信通知服务
目前短信通知都是要收费的,本人还没发现免费的短信通知服务,如有网友知道免费资源请分享下。
本人选用的是腾讯云的短信通知服务,一年1千条短信40多元。其他还有阿里云,华为云等等。自己选择实惠好用的平台服务。
1,创建短信签名
创建短信签名这步,目前比较严格了,前提条件,需要实名认证的网站,APP,公众号,小程序等,普通个人开发者要申请下来流程比较繁琐,具体的就不详说了,自己网上查询教程,不是本次重点。
2,创建正文模板
注意按照平台模板格式设置短信内容模板,腾讯云短信模板参数,是按照参数顺序1,2,3等数字来设置的。
3,等待审核
短信签名和模板提交申请,都要审核,一般10分钟左右,审核不通过,可以修改重新提交申请。
4,发送短信
短信签名和模板都审批通过了,就可以发送短信,简单测试下效果,平台有验证方式。
国内短信快速入门,参考官方教程:
https://cloud.tencent.com/document/product/382/37745
第二步:编写短信通知代码
腾讯云官网短信调用方式有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)
第三步:短信通知整合到学习系统中
1,编写短信发送工具方法
./mysite/study_system/smsutil.py
# 更多代码内容请关注weixin公众号: PandaCode辉
2,更新定时任务实现方法
./mysite/study_system/utils.py:
# 更多代码内容请关注weixin公众号: PandaCode辉
第四步:运行测试效果
1,定时发布学习任务
-------------------------------------------------end -------------------------------------------------