完成登录功能,用session记住用户名
登录功能完成:
1、js:设置return
1 function fnLogin() { 2 var oUname = document.getElementById("uname") 3 var oUpass = document.getElementById("upass") 4 5 var oError = document.getElementById("error_box") 6 7 oError.innerHTML="<br>" 8 if (oUname.value.length > 20 || oUname.value.length < 6) { 9 oError.innerHTML = "请输入用户名6-20位字符" 10 isErrer = false 11 return isErrer; 12 }else if ((oUname.value.charCodeAt(0)>=48)&&(oUname.value.charCodeAt(0)<=57)){ 13 oError.innerHTML="用户名首字母必须是字母" 14 isErrer = false 15 return isErrer; 16 }else for(var i=0; i<oUname.value.length;i++){ 17 if((oUname.value.charCodeAt(i)<48)||(oUname.value.charCodeAt(i)>57)&&(oUname.value.charCodeAt(i)<97)||(oUname.value.charCodeAt(i)>122)){ 18 oError.innerHTML="用户名必须为字母或数字"; 19 isErrer = false 20 return isErrer; 21 } 22 23 } 24 25 26 27 28 if (oUpass.value.length > 20 || oUpass.value.length < 6) { 29 oError.innerHTML = "请输入密码 6-20位字符" 30 isErrer = false 31 return isErrer; 32 } 33 34 35 window.alert("登录成功") 36 37 }
2、html:设置
form
input
1 {% extends 'switch.html' %} 2 3 {% block logintitle %}欢迎来到登录界面,请登录{% endblock %} 4 {% block loginhead %}<script type="text/javascript" src="../static/js/login.js"></script>{% endblock %} 5 {% block loginbody %} 6 <form action="{{ url_for('login') }}" method="post"> 7 <p id="meto">中国标准时间</p> 8 <script>document.getElementById("meto").innerHTML = Date()</script> 9 <div id="container" style="width: 300px "> 10 11 <div id="header" style=" padding: 0px; line-height: 1.8; color: rgb(128, 0, 0);">"><h2 align="center">登陆界面</h2></div> 12 13 <div id="content"> 14 15 <p align="center">用户名:<input id="uname" type="text" name="user" placeholder="请输入账号"> 16 17 </p> 18 <p align="center"> 密码 :<input id="upass" type="password" name="psw" placeholder="请输入密码"></p> 19 20 <br> 21 <div id="error_box"><br> 22 </div> 23 <input type="radio" value="stu">学生 24 <input type="radio" value="tea">老师 25 <br> 26 27 <input type="checkbox" value="true">记住密码 <a href="">登陆遇到问题</a><br> 28 29 <p align="center"><button type="submit" onclick="return fnLogin()">登录</button></p> 30     31 32 33 34 </div> 35 36 <div id="footer" style=" padding: 0px; line-height: 1.8; color: rgb(128, 0, 0);">"><h3 align="center">版权@</h3></div> 37 </div> 38 {% endblock %}
3、py:
@app.route设置methods
GET
POST
读取表单数据
查询数据库
用户名密码对:
记住用户名
跳转到首页
用户名密码不对:
提示相应错误。
1 @app.route('/login/',methods=['GET','POST'])# 跳转登陆,methods定义它有两种请求方式 2 def login(): 3 if request.method == 'GET': 4 return render_template('login.html') 5 else: 6 username = request.form.get('user') 7 password = request.form.get('psw') 8 user = User.query.filter(User.username == username).first() # 判断用户名是否存在 9 if user: 10 if 11 return redirect(url_for('switch')) 12 else: 13 return '用户名不存在'
4、session:
- 从`flask`中导入`session`
- 设置`SECRET_KEY`
- 操作字典一样操作`session`:增加用户名`session['username']=`username
1 from flask import session 2 config.py 3 import os 4 SECRET_KEY = os.urandom(24) 5 session['user'] = username