#邮箱发送----------需要正则验证 import re
class Index(View):
def get(self,request):
return HttpResponse('ok')
def post(self,request):
mes = {}
# 1.获取数据
email = request.POST.get('email')
# 2.验证
if not email:
mes['code']=20020
mes['message']='邮箱不能为空'
return JsonResponse(mes)
# 正则验证
ret = '^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$'
if not re.match(ret,email):
mes['code']=20030
mes['message']='邮箱不能为空格式不合法'
return JsonResponse(mes)
# 3.生成注册码
# 定义验证码的备选值
str = '1234567890QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm' # 随机选取4个值作为验证码
rand_str = ''
for i in range(0, 4):
rand_str += str[random.randrange(0, len(str))]
# 存入session
request.session['code']=rand_str
# 4.发送邮件
title = '美多商场-用户注册'
content = '您的注册码是:{}'.format(rand_str)
# 发件人
sender = settings.EMAIL_FORM
# 收件人[]
email_list = [email]
send_mail(title,content,sender,email_list)
mes['code']=200
mes['message']='注册码已经发送邮箱,请查收'
return JsonResponse(mes)
HTML 里面
<!DOCTYPE html>
{#引入静态文件#}
{% load staticfiles %}
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>注册</title>
<script src="{% static 'admin/js/jquery-1.12.4.min.js' %}"></script>
</head>
<body>
{{mes}}
<form action="" method="POST" id='regform'> {# id 精确到表单位置#}
用户名:<input name='name'><br>
密码:<input name='passwd'><br>
邮箱:<input name='email' id='email'>
{#赋值给id 用ajax刷新数据#}
<button id='btncode'>获取注册码</button><br>
{# 格式不正确则将信息展示出来#}
<label for="" style="color:red" id='msg'></label><br>
注册码:<input name='code'><br>
<button type="submit" id='btnreg' onclick='sub()'>注册</button>
</form>
</body>
<script>
function sub(){
$('msg').text('')
$('#regform').unbind('submit').submit()
}
$('#btncode').click(function(){ //验证码点击事件
//阻止表单默认提交
$('#regform').submit(function(event){
event.preventDefault()
})
var email = $('#email').val() //逻辑处理
var reg = new RegExp(/^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/);
if (!reg.test(email)) //检测(邮箱的输入是否符合正则表达式)字符串是否符合正则表达式
{ //alert('邮箱格式不正确')
$('#msg').text('邮箱格式不正确')
return; //如果验证不通过直接终止函数运行
}
$.ajax({
url:'/index/', //发送地址
type:'post', //请求方式
data:{'email':email}, //参数
dataType:JSON,
success:function(res){
// console.log(res)
alert(res.mes)
}
})
})
//juery 异步刷新调用
</script>
</html>