博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
完成登录功能,用session记住用户名
阅读量:4611 次
发布时间:2019-06-09

本文共 3839 字,大约阅读时间需要 12 分钟。

登录功能完成:

  1. js:设置return
  2. html:设置
    1. form
    2. input
    3. οnclick="return fnLogin()"
  3. py:
    1. @app.route设置methods
    2. GET
    3. POST
      1. 读取表单数据
      2. 查询数据库
        1. 用户名密码对:
          1. 记住用户名
          2. 跳转到首页
        2. 用户名密码不对:
          1. 提示相应错误。

session:

  1. 从`flask`中导入`session`
  2. 设置`SECRET_KEY`
  3. 操作字典一样操作`session`:增加用户名`session['username']=`username
    from flask import Flask,render_template,request,redirect,url_for,sessionfrom flask_sqlalchemy import SQLAlchemyimport configapp = Flask(__name__)app.config.from_object(config)db=SQLAlchemy(app)class User(db.Model):    __table__name = 'user'    id = db.Column(db.Integer,primary_key=True,autoincrement=True)    username = db.Column(db.String(20),nullable=False)    password = db.Column(db.String(20),nullable=False)    nickname = db.Column(db.String(50))db.create_all()@app.route('/')def index():    return render_template('index.html')@app.route('/regist/',methods=['GET','POST'])def regist():    if request.method=='GET':        return render_template('regist.html')    else:        username=request.form.get('username')        password=request.form.get('password')        nickname=request.form.get('nickname')        user=User.query.filter(User.username==username).first()        if user:            return u'username existed'        else:            user=User (username=username,password=password,nickname=nickname)            db.session.add(user)            db.session.commit()            return redirect(url_for('login'))@app.route('/login/',methods=['GET','POST'])def login():    if request.method=='GET':        return render_template('login.html')    else:        username=request.form.get('username')        password=request.form.get('password')        user = User.query.filter(User.username == username).first()        if user:            if user.password==password:                session['user']=username                return redirect(url_for('index'))            else:                return u'password error'        else:            return u'username is not existed'if __name__ == '__main__':    app.run(debug=True)
    import osSECRET_KEY = os.urandom(24)SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:@localhost:3306/mis_db?charset=utf8'SQLALCHEMY_TRACK_MODIFICATIONS = False
    {% extends 'base.html' %}{% block title %}登录{% endblock %}{% block head %}    
    {% endblock %}{% block main %}
    Username:
    Password:
    {% endblock %}
    function myLogin(){            var uName=document.getElementById("name");            var uError=document.getElementById("error_box");            var upass = document.getElementById("password");            var isError=true;            uError.innerHTML = "
    " //uname if(uName.value.length>12 || uName.value.length<6){ uError.innerHTML="Username 6-12 bits"; isError=false; return isError; }else if((uName.value.charCodeAt(0)>=48)&& uName.value.charCodeAt(0)<=57){ uError.innerHTML="The first letter cannot be numeric"; isError=false; return isError; }else for(var i=0; i
    57)&&(uName.value.charCodeAt(i)<97 || uName.value.charCodeAt(i)>122 )){ uError.innerHTML = "only letter or number."; isNotError=false; return isError; } } if(upass.value.length>12 || upass.value.length<6){ uError.innerHTML="password 6-12 bits"; isError=false; return isError; } return isError; }

     

转载于:https://www.cnblogs.com/marsk/p/7879736.html

你可能感兴趣的文章
编写用例文档
查看>>
解决WPF两个图片控件显示相同图片因线程占用,其中一个显示不全的问题
查看>>
寻觅Azure上的Athena和BigQuery (二):神奇的PolyBase
查看>>
SSM——(一)
查看>>
wp_list_categories函数用法详解
查看>>
内疚的程序员
查看>>
移动互联网的六大发展趋势
查看>>
UIImageView填充模式(contentMode)
查看>>
RabbitMQ基础知识详解
查看>>
[转载]辜新星:时刻调整方向 找到人生的蓝海
查看>>
ubuntu16.04 64位中的32位兼容lib
查看>>
C++指针总结
查看>>
MYSQL动态查询拼接的表名的SQL脚本实现(MYSQL动态执行SQL脚本)
查看>>
PHP检测移动设备类mobile detection使用实例
查看>>
HDU 4255 A Famous Grid
查看>>
extern
查看>>
Bluetooth 报文知识点
查看>>
Json语法浅析
查看>>
shell脚本批量生成配置文件
查看>>
dedecms常用标签
查看>>