登录功能完成:
1.js:设置return
function fnLogin() { 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 } } if (testPassWord.value.length < 6||testName.value.length > 20) { errorPassWord.innerHTML = "密码应为6-12位"; judgement=false return judgement } }
2.html:设置
form
input
<form action="{{url_for('login')}}" method="post"> <div class="inputStyle"> <input class="inputFramework" type="text" id="uname" name="username" placeholder="请输入用户名"> </div> <div class="inputStyle"> <input class="inputFramework" type="password" id="upassword" name="userpassword" placeholder="请输入密码"> </div> <div class="checkBox"> <label class="caption"><input class="loginCheckBox" type="radio" name="role" value="stu">学生</label> <label class="caption"><input class="loginCheckBox" type="radio" name="role" value="tea">教师</label> <br> </div> <div> <br> <label><input id="loginButton" type="button" value="登录" onclick="fnLogin();"/></label> </div> <div class="errorBox" id="errorName"> </div> <div class="errorBox" id="errorPassWord"> </div> </form>
3.py:
@app.route设置methods
GET
POST
- 读取表单数据
- 查询数据库
- 用户名密码对:
- 记住用户名
- 跳转到首页
- 用户名密码不对:
- 提示相应错误。
- 用户名密码对:
@app.route('/login') def login(): if request.method == 'GET': return render_template('login.html') else: username = request.form.get('username') password = request.form.get('userpassword') user = User.query.filter(User.username == username, User.password == password).first() if user: session['user']=username session.permanent = True; return redirect(url_for('index')) else: return 'username or password error'
4.session:
a.从`flask`中导入`session`
b.设置`SECRET_KEY`
c.操作字典一样操作`session`:增加用户名`session['username']=`username
from flask import session config.py import os SECRET_KEY = os.urandom(24) session['user'] = username