zoukankan      html  css  js  c++  java
  • Flask-Session 简单使用

    一 知识点

    1. 安装 flask 1.0.2

    使用Flask-Session,其实必须需要配置的只有这几个地方:


    注意!!!!!!:

    1.  需要配置的地方1

    # flask_session 中的Session是依赖于falsk中的session的,所以这里的session一定要导入,否则运行过程中报错
    
    from flask import Flask, render_template, request

    2. 需要配置的地方2 (浏览源码获得的结果)

    # 如果你不对这个flask_session中的Session进行配置的话,它在源码中跑一圈,就会回来使用flask中原生的session
    # 如果配置了,就会使用相应的配置,使用flask_session中的session,配合你的配置进行运行
    
    app.config["SESSION_TYPE"] = "redis" # 指定"SESSION_TYPE"
    app.config["SESSION_REDIS"] = Redis(host='127.0.0.1', port=6379) # 指定"SESSION_REDIS",应该是个redis链接

    3. 需要配置的地方3

    # 实例化一个session,需要配合配置
    Session(app)

    4. 必须注意的地方: Session(app) 必须写在app.config[]的下边!!!!!否则会报错说需要将应用程序上的secret_key设置为唯一且保密的内容:

    # The session is unavailable because no secret key was set.  
    # Set the secret_key on the application to something unique and secret.
    # 翻译会话不可用,因为没有设置密钥。 将应用程序上的secret_key设置为唯一且保密的内容。

    二 具体代码如下:

    app.py 文件:

    # 注意: flask_session 中的Session是依赖于falsk中的session的,所以这里的session一定要导入,否则运行过程中报错
    from flask import Flask, request, render_template, redirect, session
    from flask_session import Session
    from redis import Redis
    
    app = Flask(__name__)
    
    # 如果你不对这个flask_session中的Session进行配置的话,它在源码中跑一圈,就会回来使用flask中原生的session
    # 如果配置了,就会使用相应的配置,使用flask_session中的session,配合你的配置进行运行
    app.config["SESSION_TYPE"] = "redis"  # 指定"SESSION_TYPE"
    app.config["SESSION_REDIS"] = Redis(host='127.0.0.1', port=6379)  # 指定"SESSION_REDIS",应该是个redis链接
    
    # 实例化一个session,需要配合配置(必须写在app.config[]的下边!!!!!否则会报错说需要将应用程序上的secret_key设置为唯一且保密的内容)
    # The session is unavailable because no secret key was set.  Set the secret_key on the application to something unique and secret.
    # 翻译会话不可用,因为没有设置密钥。 将应用程序上的secret_key设置为唯一且保密的内容。
    Session(app)
    
    
    @app.route("/login", methods=["GET", "POST"])
    def login():
        if request.method == "GET":
            return render_template("login.html")
        else:
            # session["user"] = 123
            session["user"] = request.form.get('username')
            return " 愿每个人都被世界所善待~  {}".format(str(session["user"]))
    
    
    if __name__ == '__main__':
        app.run()

    login.html 文件:

    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
        <meta http-equiv="content-Type" charset="UTF-8">
        <meta http-equiv="x-ua-compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Title</title>
    </head>
    <body>
    <form action="" method="post" enctype="multipart/form-data">
        <input type="text" name="username">
        <input type="file" name="myFile">
        <input type="submit" value="提交">
    </form>
    </body>
    </html>
  • 相关阅读:
    D3制作力导向图
    page分页问题,根据页码获取对应页面的数据,接口调用
    python列表生成式、键盘输入及类型转换、字符串翻转、字母大小写、数组广播、循环语句等基础问题
    python中将已有链接的视频进行下载
    机器学习1
    python 排序算法
    LintCode 练习题
    python 装饰器的使用
    hive 学习笔记
    hive 操作
  • 原文地址:https://www.cnblogs.com/yuanyongqiang/p/10453654.html
Copyright © 2011-2022 走看看