Django阿里云短信验证
创建SMS.py文件
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.request import CommonRequest
ACCESS_KEY_ID = "*****" #用户AccessKey
ACCESS_KEY_SECRET = "******" #Access Key Secret
class SMS:
def __init__(self,signName,templateCode):
self.signName = signName
self.templateCode = templateCode
self.client = client = AcsClient(ACCESS_KEY_ID,ACCESS_KEY_SECRET,'cn-hangzhou')
def send(self, phone_numbers, template_param):
request = CommonRequest()
request.set_accept_format('json')
request.set_domain('dysmsapi.aliyuncs.com')
request.set_method('POST')
request.set_protocol_type('https') # https | http
request.set_version('2017-05-25')
request.set_action_name('SendSms')
request.add_query_param('RegionId', "cn-hangzhou")
request.add_query_param('PhoneNumbers', phone_numbers)
request.add_query_param('SignName', self.signName)
request.add_query_param('TemplateCode', self.templateCode)
request.add_query_param('TemplateParam', template_param)
response = self.client.do_action_with_exception(request)
return response
# 短语发送对象
sms = SMS("签名名称","模板CODE")
阿里云点击控制台搜索短信服务
路由函数views
class Mobile_login(APIView):
def get(self,request):
# 模板参数一定要是这个格式
# 一定要注意模板变量number
# 生成随机验证码
params = "{'code':%d}"%(randint(1000,100000))
para = request.GET.get('phone_numbers')
res = sms.send(para,params)
return HttpResponse(res)
测接口的时候:127.0.0.1:8000?phone_numbers=18888888888