Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。
在快速发展的互联网行业,网站的要求也越来越高,功能也是逐渐强悍。短信验证几乎是每个大小型网站必备的一项功能,不管是通过验证登录,还是注册,都一定性的保障了用户的账号数据安全。
本次的短信验证,使用的是阿里云的短信服务,所以前提是,需要开通阿里云账号,搜索短信服务。如果不使用阿里云,同样可以用其它云来完成短信验证功能。
如果完成了上面的两项操作,申请了签名和模板,接下来就需要在项目的运行环境中安装阿里云提供的短信服务的 python SDK。
代码语言:javascript复制pip install aliyun-python-sdk-core
需要注意,一定要在个人中心的访问控制中新建短信服务的策略权限,才能正常的发送短信。
① 生成短信业务接口
代码语言:javascript复制import uuid
import json
from aliyunsdkdysmsapi.request.v20170525 import SendSmsRequest
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.profile import region_provider
代码语言:javascript复制ACCESS_KEY_ID = ""
ACCESS_KEY_SECRET = ""
代码语言:javascript复制# 注意:不要更改
REGION = "cn-hangzhou"
PRODUCT_NAME = "Dysmsapi"
DOMAIN = "dysmsapi.aliyuncs.com"
代码语言:javascript复制acs_client = AcsClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET, REGION)
region_provider.add_endpoint(PRODUCT_NAME, REGION, DOMAIN)
② 发送短信
签名名称
模板 CODE
代码语言:javascript复制def send_sms(phone_numbers, code):
business_id = uuid.uuid1()
smsRequest = SendSmsRequest.SendSmsRequest()
# 签名名称
sign_name = ""
# 模版CODE
template_code = ""
template_param = json.dumps({"code": code})
# 申请的短信模板编码,必填
smsRequest.set_TemplateCode(template_code)
# 短信模板变量参数
if template_param is not None:
smsRequest.set_TemplateParam(template_param)
# 设置业务请求流水号,必填。
smsRequest.set_OutId(business_id)
# 短信签名
smsRequest.set_SignName(sign_name)
# 短信发送的号码列表,必填。
smsRequest.set_PhoneNumbers(phone_numbers)
# 调用短信发送接口,返回json
smsResponse = acs_client.do_action_with_exception(smsRequest)
# TODO 业务处理
return smsResponse
③ 调用短信发送视图函数
代码语言:javascript复制from utils.captcha.hycaptcha import Captcha
上一节中完成了 生成验证码
代码语言:javascript复制def sms_captcha(request):
code = Captcha.gene_text()
# 获取手机号码 /account/sms_captcha/?telephone =
telephone = request.GET.get('telephone')
# 将短信验证码保留在 session
request.session['sms_captcha'] = code
# result = aliyun.send_sms(telephone, code=code)
print('短信验证码:%s' % code)
return HttpResponse('success')