• 完成登录功能,用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
  • 相关阅读:
    线程同步
    快捷键之Sublime
    快捷键之Idea
    快捷键之Chrome
    20155219付颖卓《网络对抗》逆向及Bof基础
    20155219 《嵌入式基础》
    20155219 《信息安全系统设计基础》课程总结
    20155219 《信息安全系统设计基础》第十四周学习总结
    20155219 《信息安全系统设计基础》第十三周学习总结
    2017-2018-1 20155219《信息安全系统设计基础》 实验五 通讯协议设计
  • 原文地址:https://www.cnblogs.com/mavenlon/p/7873582.html
Copyright © 2020-2023  润新知