1.js文件: onclick函数return True时才提交表单,return False时不提交表单。
function fnregister() {
var testName=document.getElementById("username")
var errorName=document.getElementById("errorName")
var testPassWord=document.getElementById("userpassword")
var errorPassWord=document.getElementById("errorPassWord")
var judgement=true;
errorName.innerHTML = "<br>";
errorPassWord.innerHTML = "<br>";
if (testName.value.length < 6||testName.value.length > 12) {
errorName.innerHTML = "用户名必须是6-12位";
judgement=false
return judgement
}
else if ((testName.value.charCodeAt(0) >= 48) && (testName.value.charCodeAt(0) <= 57)) {
errorName.innerHTML = "用户名首字母不能为数字";
judgement=false
return judgement
}
else for (var i=0; i< testName.value.length; i++) {
if (((testName.value.charCodeAt(i) < 48) || (testName.value.charCodeAt(i) > 57)) && ((testName.value.charCodeAt(i) < 97) || (testName.value.charCodeAt(i) > 122))) {
errorName.innerHTML = "用户名只能包含字母和数字";
judgement=false
return judgement
}
}
var testPassWord2=document.getElementById("again")
var error=document.getElementById("errorRegister")
if (testPassWord.value.length < 6||testPassWord2.value.length > 12) {
errorPassWord.innerHTML = "密码应为6-12位";
judgement=false
return judgement
}
else if(testPassWord1.value==testPassWord2.value){
error.innerHTML = "注册成功";
return judgement
}
else{
error.innerHTML = "两次输入的密码不一致";
judgement=false
return judgement
}
}
2.html文件:
a.<form>中设置 action和method="post"
b.<input> 中设置 name
<form action="{{ url_for('login1') }}" method="post">
<div class="inputStyle">
<input class="inputFramework" type="text" id="username" name="username" placeholder="请输入用户名">
</div>
<div class="inputStyle">
<input class="inputFramework" type="password" id="regisPassWord" name="password" placeholder="请输入您的密码">
</div>
<div class="inputStyle">
<input class="inputFramework" type="password" id="again" placeholder="请再次输入您的密码">
</div>
<div>
<br>
<label><input id="loginButton" type="button" value="注册" onclick="fnregister();"/></label>
</div>
<div class="errorBox" id="errorRegister">
</div>
</form>
3.主py文件中:
a.from flask import request, redirect, url_for
b.@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('/register/',methods=['GET','POST'])
def register():
if request.method=="GET":
return render_template("register.html")
else:
username=request.form.get("username")
password=request.form.get("password")
user=User.query.filter(User.username==username).first()
if user:
return 'username existed'
else:
user = User(username='mavenlon', password='666666')
db.session.add(user)
db.session.commit()
return redirect(url_for('login'))