美文网首页
14. Flask session的默认将数据存储在cookie

14. Flask session的默认将数据存储在cookie

作者: Devops海洋的渔夫 | 来源:发表于2019-12-11 20:39 被阅读0次

    Flask session默认使用方式说明

    一般服务的session数据是在cookie处存储session的id号,然后通过id号到后端中查询session的具体数据。
    为了安全,一般session数据都是存储在后端的数据库中。
    但是也有其他的存储方式,如下:

    • Flask session的默认存储方式是将整个数据加密后存储在cookie中,无后端存储
    • 将session的id存储在url中,例如:url?sid=sessionid,这是session id针对于无法存储cookie情况的做法。

    那么本章节主要介绍Flask默认将session数据存储在cookie中的方式。

    session设置相关方法

    # 导入 session 
    from flask import Flask, session 
    
    # flask的session需要用到的秘钥字符串
    app.config["SECRET_KEY"] = "akjsdhkjashdkjhaksk120191101asd"
    
    # 设置session数据
    session["name"] = "libai"
    
    # 获取session数据
    name = session.get("name")
    

    示例代码如下

    from flask import Flask, session
    
    
    app = Flask(__name__)
    
    # flask的session需要用到的秘钥字符串
    app.config["SECRET_KEY"] = "akjsdhkjashdkjhaksk120191101asd"
    
    # flask默认把session保存到了cookie中
    @app.route("/login")
    def login():
        # 设置session数据
        session["user_name"] = "libai"
        session["user_pwd"] = "123456"
        return "login success"
    
    @app.route("/index")
    def index():
        # 获取session数据
        user_name = session.get("user_name")
        user_pwd = session.get("user_pwd")
        return "user_name = %s, user_pwd = %s" % (user_name, user_pwd)
    
    if __name__ == '__main__':
        app.run(debug=True)
    

    这个示例代码设置了两个视图函数,一个login函数用来模拟用户登录,将用户名和密码存储在session中,另一个index也是获取session中的数据。

    首先执行login来设置session,如下:

    再访问index来获取session数据,如下:

    可以看到能够成功获取到session中的数据。其中可以知道session的数据是存储在这个cookie的value中的,而为了保证一定程度的安全,所以设置了密钥进行加密。

    所以,才要设置如下key,如下:

    # flask的session需要用到的秘钥字符串
    app.config["SECRET_KEY"] = "akjsdhkjashdkjhaksk120191101asd"
    

    相关文章

      网友评论

          本文标题:14. Flask session的默认将数据存储在cookie

          本文链接:https://www.haomeiwen.com/subject/ulmbbctx.html