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