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

    登录功能完成:

    1. js:设置return
    2. html:设置
      1. form
      2. input

    session:

    1. 从`flask`中导入`session`
    2. 设置`SECRET_KEY`
    3. 操作字典一样操作`session`:增加用户名`session['username']=`username

    py:

    1. @app.route设置methods
    2. GET
    3. POST
      1. 读取表单数据
      2. 查询数据库
        1. 用户名密码对:
          1. 记住用户名
          2. 跳转到首页
        2. 用户名密码不对:

    提示相应错误。

    session:

    1. 从`flask`中导入`session`
    2. 设置`SECRET_KEY`

    操作字典一样操作`session`:增加用户名`session['username']=`username

    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):
        #创建一个表,命名user
        __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()
    
    # 添加数据
    # user=User(username='loki',password='6666')
    # db.session.add(user)
    # db.session.commit()
    
    # 查找数据
    # user=User.query.filter(User.username=='loki').first()
    # print(user.username,user.password)
    
    # 修改数据
    # user=User.query.filter(User.username=='loki').first()
    # user.password='68888'
    # print(user.username,user.password)
    # db.session.commit()
    
    # 删除数据
    # user=User.query.filter(User.username=='loki').first()
    # db.session.delete(user)
    # db.session.commit()
    
    #base页
    @app.route('/')
    def base():
        return render_template('base.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')
            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('/login/',methods=['GET','POST']) #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,User.password==password).first()
            if user:
                session['user']==username
                session.permanent=True
                return redirect(url_for('bese'))
            else:
                return 'error username or password'
    
    
    
    if __name__ == '__main__':
        app.run()
    #enconding utf-8
    import os
    
    DEBUG = True
    
    SECRET_KEY = os.urandom(24)
    
    
    DIALECT='mysql'
    DRIVER='mysqldb'
    USERNAME='root'
    PASSWORD=''
    HOST='127.0.0.1'
    PORT='3306'
    DATABESE='lesson'
    
    SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:@127.0.0.1:3306/lesson?charset=utf8'
    SQLALCHEMY_TRACK_MODIFICATIONS = False
  • 相关阅读:
    内置函数filter()和匿名函数lambda解析
    time&datetime模块详解
    python学习笔记:*args和**kwargs使用原理?
    python学习笔记:深浅拷贝的使用和原理
    python传参是传值还是传引用
    第215天:Angular---指令
    第214天:Angular 基础概念
    第213天:12个HTML和CSS必须知道的重点难点问题
    第212天:15种CSS居中的方式,最全了
    第211天:git和github的区别和使用详解
  • 原文地址:https://www.cnblogs.com/hegui/p/7875364.html
Copyright © 2011-2022 走看看