zoukankan      html  css  js  c++  java
  • 完成登录功能,用session记住用户名

    登录功能完成:

    1. js:设置return
    2. html:设置
      1. form
      2. input
    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

     py:

    from flask import Flask, render_template, request, redirect, url_for, session
    from flask_sqlalchemy import SQLAlchemy
    import config
    
    app = Flask(__name__)
    app.config.from_object(config)
    db = SQLAlchemy(app)
    
    
    class User(db.Model):
        __tablename__ = '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)
    
    
    # db.create_all()
    @app.route('/')
    def daohang():
        return render_template('daohang.html')
    
    
    @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')
            # nickname=request.form.get('nickname')
            user = User.query.filter(User.username == username).first()
            if user:
                session['user']=username
                session.permanent=True
                return redirect(url_for('daohang'))
            else:
                return 'error username or password'
            # if user:
            #     return 'username existed'
            # else:
            #     user=User(username=username,password=password)
            #     db.session.add(user)
            #     db.session.commit()
            return redirect(url_for('daohang'))
    
    
    @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 'username existed'
            else:
                user = User(username=username, password=password)
                db.session.add(user)
                db.session.commit()
                return redirect(url_for('login'))
    
    
    @app.route('/biaoqian/')
    def biaoqian():
        return render_template('biaoqian.html')
    
    
    if __name__ == '__main__':
        app.run(debug=True)

    config.py:

    import os
    
    DEBUG=True
    
    SECRET_KEY=os.urandom(24)
    
    DIALECT='mysql'
    DRIVER='mysqldb'
    USERNAME='root'
    PASSWORD='ROOT'
    HOST='127.0.0.1'
    PORT='3306'
    DATABASE='mis_db'
    
    SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:@127.0.0.1:3306/test?charset=utf8'
    SQLALCHEMY_TRACK_MODIFICATIONS = False
  • 相关阅读:
    114.114.114.114和8.8.8.8
    一台电脑双网卡同时上网
    eNSP模拟器
    路由器UPnP
    子网掩码
    网线水晶头制作
    AP (无线访问接入点(WirelessAccessPoint))
    筛选键
    注册表方法修改网络名称
    图片素材网址
  • 原文地址:https://www.cnblogs.com/chenhuafei/p/7871791.html
Copyright © 2011-2022 走看看