完成登录功能,用session记住用户名

登录功能完成:

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

      1. 读取表单数据
      2. 查询数据库
        1. 用户名密码对:
          1. 记住用户名
          2. 跳转到首页
        2. 用户名密码不对:
          1. 提示相应错误。
@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
原文地址:https://www.cnblogs.com/mavenlon/p/7873582.html