Django send text messages

Django send text messages

1. Cloud SDK installation Tencent

pip install qcloudsms_py

2. Profiles

# 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. functions to achieve

# 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

Guess you like

Origin www.cnblogs.com/17vv/p/11963162.html