Django发送短信

Django发送短信

1.安装腾讯云SDK

pip install qcloudsms_py

2.配置文件

# settings.py
# 短信应用 SDK AppID
APP_ID = 1400xxxx  # SDK AppID 以1400开头
# 短信应用 SDK AppKey
APP_KEY = "867************"
# 短信模板ID,需要在短信控制台中申请
TEMPLATE_ID = 485890  # NOTE: 这里的模板 ID`7839`只是示例,真实的模板 ID 需要在短信控制台中申请
# 签名
SMS_SIGN = "腾讯云"  # NOTE: 签名参数使用的是`签名内容`,而不是`签名ID`。这里的签名"腾讯云"只是示例,真实的签名需要在短信控制台中申请

3.功能实现

# sms.py
import random

from qcloudsms_py import SmsSingleSender

from . import settings
from utils.logging import logger

sender = SmsSingleSender(settings.APP_ID, settings.APP_KEY)


# 生成验证码
def get_code(num=6):
    """生成验证码"""
    code = ''
    for i in range(num):
        code += str(random.randint(0, 9))

    return code


# 发送验证码 需要手机号、验证码、过期时间(min)
def send_sms(mobile, code, exp):
    try:
        response = sender.send_with_param(
            86,
            mobile,
            settings.TEMPLATE_ID,
            params=(code, exp),
            sign=settings.SMS_SIGN,
            extend="", ext="")
        if response and response.get('result') == 0:
            return True
        msg = response.get('result')  # 失败的状态码
    except Exception as msg:
        pass
    logger.error('短信发送失败: %s' % msg)
    return False

4.__init__.py

# __init__.py
from .sms import send_sms, get_code
posted @ 2019-11-30 16:55  17vv  阅读(613)  评论(0编辑  收藏  举报