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.bmabk.com/index.php/post/30890.html