注册功能开发和注册验证
views.py
def register(request):
if request.method == 'GET':
return render(request, 'register.html')
if request.method == 'POST':
# 前端:不需要和数据库进行交互
# 后端:需要和数据库进行交互
username = request.POST.get('username')
password = request.POST.get('password')
repassword = request.POST.get('repassword')
email = request.POST.get('email')
mobile = request.POST.get('mobile')
code = request.POST.get('code')
check_code = request.session[mobile]
if User.objects.filter(user_name=username).exists():
return render(request, 'register.html', {'errmsg': '用户名已存在,请更换!'})
if password != repassword:
return render(request, 'register.html', {'errmsg': '两次输入密码不一致!'})
if User.objects.filter(user_mail=email).exists():
return render(request, 'register.html', {'errmsg': '邮箱已经被使用,请更换!'})
if User.objects.filter(user_tel=mobile).exists():
return render(request, 'register.html', {'errmsg': '手机号已经被使用,请更换!'})
if code != check_code:
return render(request, 'register.html', {'errmsg': '验证码输入错误!'})
else:
psd = make_password(password)
new_user = User.objects.create(user_name=username, user_password=psd, user_tel=mobile, user_mail=email, is_activate=True)
new_user.save()
return redirect('/')
register.html
{% load static %}
<!DOCTYPE html>
<html lang="ZH-CN">
<head>
<meta charset="UTF-8">
<meta name="keywords" content="PYthon自学网">
<meta name="description" content="PYthon自学网">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>register</title>
<link rel="stylesheet" href="https://at.alicdn.com/t/font_2682241_2ok8m8yeyvq.css">
<link rel="stylesheet" href="{% static 'css/style.css' %}">
<script src="{% static 'js/jquery-3.1.1.min.js' %}"></script>
<script src="{% static 'js/index.js' %}"></script>
</head>
<body>
<div class="register">
<div class="relo-box">
<div class="relo-text">
<span>注册</span>
</div>
<div class="relo-form">
<form action="/register/" method="post">{% csrf_token %}
<!-- 用户名 -->
<div class="item">
<i class="iconfont icon-author"></i>
<input type="text" name="username" id="username" placeholder="请输入您的昵称">
<div class="haserror">{{ errmsg }}</div>
</div>
<!-- 密码 -->
<div class="item">
<i class="iconfont icon-mima"></i>
<input type="password" name="password" placeholder="输入密码" id="password">
<div class="haserror">{{ errmsg }}</div>
</div>
<!-- 确认密码 -->
<div class="item">
<i class="iconfont icon-querenmima"></i>
<input type="password" name="repassword" placeholder="确认密码" id="repassword">
<div class="haserror">{{ errmsg }}</div>
</div>
<!-- 邮箱 -->
<div class="item">
<i class="iconfont icon-youxiang"></i>
<input type="email" name="email" placeholder="请输入常使用邮箱" id="email">
<div class="haserror">{{ errmsg }}</div>
</div>
<!-- 手机号 -->
<div class="item">
<i class="iconfont icon-shouji"></i>
<input type="mobile" name="mobile" placeholder="请输入11位手机号" id="mobile">
<div class="haserror">{{ errmsg }}</div>
</div>
<!-- 验证码 -->
<div class="item ">
<input id="code" class="code" type="text" name="code" placeholder="请输入短信验证码">
<a href="#" class="a-green" id="get_a">发送验证码</a>
<div class="haserror">{{ errmsg }}</div>
</div>
<!-- 提交 -->
<div class="item">
<button type="submit" name="submit" value="立即登录" id="submit">立即注册</button>
<div class="haserror"></div>
</div>
<div class="item forget clearfix">
<div class="forget-right"> 已有账号? <a class="forget" href="#">立即登录</a> </div>
</div>
</form>
</div>
</div>
</div>
</body>
</html>