前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flask session的默认将数据存储在cookie中的方式

Flask session的默认将数据存储在cookie中的方式

作者头像
Devops海洋的渔夫
发布2019-12-16 17:43:22
4.3K0
发布2019-12-16 17:43:22
举报
文章被收录于专栏:Devops专栏Devops专栏Devops专栏

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"
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Flask session默认使用方式说明
    • session设置相关方法
    • 示例代码如下
    相关产品与服务
    对象存储
    对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档