创建localsettings文件夹(记录我们的APPID和密钥)
# 腾讯云短信应用的 app_id
TENCENT_SMS_APP_ID =
# 腾讯云短信应用的 app_key
TENCENT_SMS_APP_KEY =
# 腾讯云短信签名内容
TENCENT_SMS_SIGN =
TENCENT_SMS_TEMPLATE={
'register':1746448,
'login':1746537,
}
导入腾讯发短信的函数
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
from qcloudsms_py import SmsMultiSender, SmsSingleSender
from qcloudsms_py.httpclient import HTTPError
from django.conf import settings
def send_sms_single(phone_num, template_id, template_param_list):
"""
单条发送短信
:param phone_num: 手机号
:param template_id: 腾讯云短信模板ID
:param template_param_list: 短信模板所需参数列表,例如:【验证码:{1},描述:{2}】,则传递参数 [888,666]按顺序去格式化模板
:return:
"""
appid = settings.TENCENT_SMS_APP_ID
appkey = settings.TENCENT_SMS_APP_KEY
sms_sign = settings.TENCENT_SMS_SIGN
sender = SmsSingleSender(appid, appkey)
try:
response = sender.send_with_param(86, phone_num, template_id, template_param_list, sign=sms_sign)
except HTTPError as e:
response = {'result': 1000, 'errmsg': "网络异常发送失败"}
return response
def send_sms_multi(phone_num_list, template_id, param_list):
"""
批量发送短信
:param phone_num_list:手机号列表
:param template_id:腾讯云短信模板ID
:param param_list:短信模板所需参数列表,例如:【验证码:{1},描述:{2}】,则传递参数 [888,666]按顺序去格式化模板
:return:
"""
appid = settings.TENCENT_SMS_APP_ID
appkey = settings.TENCENT_SMS_APP_KEY
sms_sign = settings.TENCENT_SMS_SIGN
sender = SmsMultiSender(appid, appkey)
try:
response = sender.send_with_param(86, phone_num_list, template_id, param_list, sign=sms_sign)
except HTTPError as e:
response = {'result': 1000, 'errmsg': "网络异常发送失败"}
return response
书写views里的函数
def register(request):
tpl=request.GET('tpl')
template_id=settings.TENCENT_SMS_TEMPLATE.get(tpl)
if not template_id:
return HttpResponse('模板不存在')
code=random.randrange(1000,9999)
res=send_sms_single('你的手机号码',template_id,[code,])
if res['result']==0:
return HttpResponse('成功')
else:
return HttpResponse(res['errmsg'])