• 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 类可以发送单条短信。以下是一个示例代码:

    1. from qcloudsms_py import SmsSingleSender
    2. from qcloudsms_py.httpclient import HTTPError
    3. # 短信应用 SDK AppID
    4. appid = 1412345679 # SDK AppID 以1400开头
    5. # 短信应用 SDK AppKey
    6. appkey = "******************"
    7. # 需要发送短信的手机号码
    8. phone_number = "12345678901"
    9. # 短信模板 ID,需要在短信应用中申请
    10. template_id = 1234 # NOTE: 这里使用的模板 ID 必须已经审核通过
    11. # 短信签名内容,使用 UTF-8 编码,必须填写已审核通过的签名
    12. sms_sign = "腾讯云"
    13. try:
    14. ssender = SmsSingleSender(appid, appkey)
    15. # 指定模板单发
    16. result = ssender.send_with_param(phone_number, template_id, ["123456"], sign=sms_sign)
    17. print(result)
    18. except HTTPError as e:
    19. print(e)
    20. except Exception as e:
    21. print(e)

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

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

    ./mysite/study_system/smsutil.py

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

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

     ./mysite/study_system/utils.py:

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

    第四步:运行测试效果

    1,定时发布学习任务

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

  • 相关阅读:
    【千律】OpenCV基础:Hough圆检测
    Linux 加密安全和私有CA的搭建方法
    C++——模板进阶
    DispatcherSynchronizationContext and Dispatcher
    运维07:堡垒机
    使用vLLM和ChatGLM3-6b批量推理
    探索隧道ip如何助力爬虫应用
    map格式和string格式转化为json格式
    GeoTools的AStar算法实现,自定义Node及Edge
    数据结构与算法编程题11
  • 原文地址:https://blog.csdn.net/xionghui2007/article/details/134264569