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


    1.js:设置return

    function fnLogin() {
        var oUname = document.getElementById("uname")
        var oUpass = document.getElementById("upass")
    
        var oError = document.getElementById("error_box")
    
        oError.innerHTML="<br>"
        if (oUname.value.length > 20 || oUname.value.length < 6) {
            oError.innerHTML = "请输入用户名6-20位字符"
           isErrer = false
            return isErrer;
        }else if ((oUname.value.charCodeAt(0)>=48)&&(oUname.value.charCodeAt(0)<=57)){
            oError.innerHTML="用户名首字母必须是字母"
           isErrer = false
            return isErrer;
        }else for(var i=0; i<oUname.value.length;i++){
            if((oUname.value.charCodeAt(i)<48)||(oUname.value.charCodeAt(i)>57)&&(oUname.value.charCodeAt(i)<97)||(oUname.value.charCodeAt(i)>122)){
                oError.innerHTML="用户名必须为字母或数字";
                isErrer = false
                return isErrer;
            }
    
        }
    
    
    
    
        if (oUpass.value.length > 20 || oUpass.value.length < 6) {
            oError.innerHTML = "请输入密码 6-20位字符"
             isErrer = false
                return isErrer;
        }
    
    
            window.alert("登录成功")
    
    }

    2.html:设置

    a.form

    b.input

    {% extends 'switch.html' %}
    
    {% block logintitle %}欢迎来到登录界面,请登录{% endblock %}
    {% block loginhead %}<script type="text/javascript" src="../static/js/login.js"></script>{% endblock %}
    {% block loginbody %}
     <form action="{{ url_for('login') }}" method="post">
        <p id="meto">中国标准时间</p>
    <script>document.getElementById("meto").innerHTML = Date()</script>
    <div id="container" style=" 300px  ">
    
        <div id="header" style="background-color: darkorange"><h2 align="center">登陆界面</h2></div>
    
        <div id="content">
    
                <p align="center">用户名:<input id="uname" type="text" name="user" placeholder="请输入账号">
    
                </p>
                <p align="center"> 密码&nbsp<input id="upass" type="password" name="psw" placeholder="请输入密码"></p>
    
                <br>
                <div id="error_box"><br>
                </div>
                <input type="radio" value="stu">学生
                <input type="radio" value="tea">老师
                <br>
    
                <input type="checkbox" value="true">记住密码 <a href="">登陆遇到问题</a><br>
    
             <p align="center"><button type="submit" onclick="return fnLogin()">登录</button></p>
                &nbsp&nbsp&nbsp
    
    
    
        </div>
    
        <div id="footer" style="background-color: darkgoldenrod"><h3 align="center">版权@</h3></div>
    </div>
    {% endblock %}

    py:

    1. @app.route设置methods
    2. GET
    3. POST
      1. 读取表单数据
      2. 查询数据库
        1. 用户名密码对:
          1. 记住用户名
          2. 跳转到首页
        2. 用户名密码不对:
          1. 提示相应错误。
    @app.route('/login/',methods=['GET','POST'])# 跳转登陆,methods定义它有两种请求方式
    def login():
        if request.method == 'GET':
          return render_template('login.html')
        else:
            username = request.form.get('user')
            password = request.form.get('psw')
            user = User.query.filter(User.username == username).first()  # 判断用户名是否存在
            if user:
                if
                return   redirect(url_for('switch'))
            else:
                return '用户名不存在'

    session:

    1. 从`flask`中导入`session`
    2. 设置`SECRET_KEY`
    3. 操作字典一样操作`session`:增加用户名`session['username']=`username
    from flask import session
    config.py
    import os
    SECRET_KEY = os.urandom(24)
    session['user'] = username
  • 相关阅读:
    编码问题
    僵尸进程与孤儿进程
    进程理论 阻塞非阻塞 同步异步 I/O操作
    浏览器上网流程以及套接字介绍
    OSI七层模型
    JsonResponse返回中文乱码问题
    查看源码所在位置
    linux ssh登录的小知识
    centos7安装python3.6
    Jquery的使用
  • 原文地址:https://www.cnblogs.com/GAODASHANG/p/7881179.html
Copyright © 2020-2023  润新知