问题标签 [flask-session]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1742 浏览

session - 从 Flask Navigation 访问 Flask Session 变量以获得动态导航菜单

我想要一个动态导航菜单,如果用户当前未登录,则显示“登录”,如果用户已登录,则显示“注销”。

我正在使用类似于以下的代码:

不幸的是,Flask 会话变量超出了 nav 对象的范围,因此我无法从 top_nav 中访问 flask.session。

例如,当我在我的应用程序之外创建用于访问烧瓶会话的任何独立功能时,我遇到了同样的困难

这些函数给出了预期的错误“RuntimeError:在请求上下文之外工作”。

出于安全原因,我不想在我的 application.py 代码中为用户使用全局变量,因此多人可以同时访问应用程序而不会出错。我相信 SESSION 应该存储用户当前是否登录。

如何让我的 flask_nav.Nav() 查看我的应用程序的 flask.session?

0 投票
2 回答
763 浏览

flask - 如果我在应用程序中使用了 flask_session,为什么会出现 400 错误?

最近我开始在我的应用程序中使用 flask_session 扩展,我也出于安全目的使用flask_wtf.csrf扩展令牌。

现在,在flask_session之前应用程序运行良好,但是当我安装flask_session并在我的config.py中配置它的参数时,如果我尝试登录或注册应用程序给我400 Bad Request The CSRF session token is missing.,事实上,我在我的所有请求中都包含了csrf_token,包括还有ajax请求。

会话存储类型为sqlalchemy

我忘了提,我注意到如果我将类型更改为“文件系统”,错误不会出现。

这是flask_session 文档以获取更多信息。

登录模板

客户端views.py

0 投票
2 回答
2547 浏览

python - 我是否需要创建会话表才能使用 Flask-Session SqlAlchemySessionInterface

我正在尝试在我的 python 应用程序中实现 Flask-Session。我在文档中读到,它建议使用另一个接口,例如在没有向配置键提供任何内容时使用SqlAlchemySessionInterface的默认接口。NullSessionInterfaceSESSION_TYPE

从 Session 类下的 flask_session/ init .py 文件中读取

默认情况下 Flask-Session 将使用 :class: NullSessionInterface,您确实应该配置您的应用程序以使用不同的 SessionInterface。

SESSION_TYPE配置键设置为后"sqlalchemy"出现错误

这表明 Flask-Session 正在寻找在我的数据库模型中使用名称为“会话”的表,但我在 Flask-Session 文档中找不到任何地方指出应该创建一个表以及它应该具有哪些字段。

任何人都可以提出解决方案吗?

0 投票
1 回答
1944 浏览

python - 如何在不需要登录的情况下使用 Flask 中的会话存储用户事件信息?

我见过的每个涉及 Flask 会话的教程都有一个登录。我不想登录。

假设我正在制作一个游戏,我想记录输赢。在不登录的情况下,我希望在用户访问网络应用程序时记录他们的赢/输。

这可能吗?

[编辑] 我开始认为会话不是我想要的。我只希望在活动浏览器中播放时记录赢/输。所以也许我应该有一个在每场比赛后更新输赢的盒子?

0 投票
0 回答
171 浏览

session - 如果密钥更改,Flask 会话会发生什么?

另外:如果使用https://pythonhosted.org/Flask-Session/将实际会话数据保存在服务器端会话中会发生什么,例如在 Redis 上?(cookie 中只有一个会话 ID)

从 Flasks 的角度来看,cookie 当然是无效的。它会自动删除cookie吗?Flask Session是否 也会删除相应的 Redis 条目?

---- 编辑:(标记为重复):-----

对不起,但我认为并不完全重复。我以前知道引用的问题。不幸的是,它没有回答内部会话如何失效以及服务器端会话是否被引用的Flask 会话库相应地失效。另一个问题不考虑服务器端会话失效的任何行为。

此外,其他问题似乎建议更改密钥,我不这样做。尽管在密钥泄漏的情况下可能会出现必要性。在这种情况下,客户端 cookie + 服务器端会话的详细情况可能会很有趣。

0 投票
1 回答
963 浏览

python - 会话密钥未从 Flask 测试中修改

我正在为我的 Flask 应用程序构建一个测试,在其中一个测试中需要修改一个会话密钥(它本身是一个值列表),然后检查应用程序行为是否被修改后的密钥内容改变。我正在使用Flask 文档中的一种方法来修改session测试。

这是一个示例代码摘录,用于演示问题(我添加了打印语句,以及它们在测试运行期间打印的内容):

我的应用程序.py

test_my_app.py

我的问题是:

  1. 为什么会这样?
  2. session['list']从测试中修改的正确方法是什么?
0 投票
0 回答
134 浏览

session - Flask 会话和静态文件

我使用SessionInterface与 DynamoDB 数据库交互的自定义​​实现。看起来会话是为每个请求加载的,包括对静态文件的请求。

知道我错过了什么吗?

0 投票
0 回答
268 浏览

python - 如何解决烧瓶文件系统会话数据丢失的原因

我有一个应用程序(在 Docker 中运行并由 Marathon 管理),我在其中使用服务器端烧瓶会话 - FileSystemSessionInterface(永久会话)。

我的问题是,如果用户等待太久无法进入下一步,会话数据就会丢失。

我的一个假设是这是因为 Marathon,它通过每 2 秒发出一个 http get 请求来执行应用程序的健康检查。这会在每个请求上打开一个新的会话文件。我的假设是达到了打开文件的最大数量。但是,当我在 docker 容器中检查打开了多少会话文件时,这个数字并不大,大约 350 个文件。

有没有人有这个问题,关于为什么我的会话数据消失的任何想法?

0 投票
0 回答
685 浏览

python - flask_session 会话不会保留在不同的 socketio 处理程序中

我试图了解会话在 flask_session 扩展中是如何工作的。我有服务器端代码:

和客户:

我在服务器上得到以下输出:3 NO

但我想得到:3 3

我不明白为什么不保留会话变量。将不胜感激任何帮助。

UPD:执行上述代码会在 \flask_session 目录中生成两个不同的文件

0 投票
0 回答
430 浏览

python - 我应该如何使用 redis 清除烧瓶服务器会话?

我应该使用 session.pop() 还是 session.clear()?

当前的问题是:我尝试使用 session.clear() 来结束会话,但会话仍然存在于 redis 中。

我希望:

  1. 结束当前会话
  2. 删除redis中相关的session存储

那里的最佳做法是什么?非常感谢。