完成注册功能
js文件: onclick函数return True时才提交表单,return False时不提交表单。
1 function mulogin() { 2 var name=document.getElementById("username"); 3 var password=document.getElementById("password"); 4 var password1=document.getElementById("password"); 5 var error=document.getElementById("error_box"); 6 var isError=true; 7 8 9 error.innerHTML="<br>"; 10 if(name.value.length<6 || name.value.length>20){ 11 error.innerHTML="用户名为6-20位"; 12 isError=false; 13 return isError; 14 }else if(name.value.charCodeAt(0)>=48 && (name.value.charCodeAt(0)<=57)){ 15 error.innerHTML="首字母必须为字母"; 16 isError=false; 17 return isError; 18 }else for( var i=0;i<name.value.length;i++){ 19 if((name.value.charCodeAt(i)<48 || name.value.charCodeAt(i)>57) && (name.value.charCodeAt(i)<97|| name.value.charCodeAt(i)>122)){ 20 error.innerHTML="用户名只能是字母和数字"; 21 isError=false; 22 return isError; 23 } 24 } 25 if(password.value.length<6 || password.value.length>20 ){ 26 error.innerHTML="密码为6-20位"; 27 isError=false; 28 return isError; 29 } 30 if(password!=password1){ 31 document.getElementById("error_box").innerHTML="两次密码不一致,请重新输入"; 32 isError=false; 33 return isError; 34 35 } 36 }
html文件:
<form>中设置 action和method="post"
<input> 中设置 name
1 {% extends 'index.html' %} 2 {% block title %}注册{% endblock %} 3 4 {% block head %} 5 <link rel="stylesheet" type="text/css" href="{{ url_for('static',filename='css/regist.css') }}"> 6 <script src="{{ url_for('static',filename='js/regist.js') }}"></script>> 7 {% endblock %} 8 9 {% block main %} 10 <div class="box"> 11 <h2>注册</h2> 12 <br> 13 <form action="{{url_for('regiest')}}" method="post"> 14 <div class="input_box"> 15 <input id="username" type="text" placeholder="请输入用户名" name="username"> 16 <input id="nickname" type="text" placeholder="昵称" name="nickname"> 17 </div> 18 <div class="input_box"> 19 <input id="password" type="text" placeholder="请输入密码" name="password"> 20 <input id="password1" type="text" placeholder="请输入密码"> 21 </div> 22 <br><br> 23 <div id="error_box"><br></div> 24 <div> 25 <button onclick="muregist()">注册</button> 26 </div> 27 </form> 28 </div> 29 {% endblock %}
主py文件中:
- from flask import request, redirect, url_for
- @app.route('/regist/', methods=['GET', 'POST’])
def regist():
if request.method == 'GET':
return render_template('regist.html')
else:
username = request.form.get(‘username’)#获取form中的数据
判断用户名是否存在
存到数据库中
redirect重定向到登录页
@app.route('/regist/', methods=['GET', 'POST'])
def regist():
if request.method == 'GET':
return render_template('regist.html')
else:
username = request.form.get('username') # 获取form中的数据
passwrod = request.form.get('passwrod')
nickname = request.form.get('nickname')
user = User.query.filter(User.username == username).first()
if user:
return '用户已存在' # 判断用户是否存在
else:
user = User(username=username, passwrod=passwrod, nickname=nickname) # 新增到数据库中
db.session.add(user) # 数据库操作
db.session.commit()
return redirect(url_for('login')) # 重新定向到登录页