问题标签 [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 投票
1 回答
98 浏览

flask - Flask 会话数据在 localhost 测试中有效,但在主服务器中无效

我有一个用于烧瓶网站的小型登录表单,它<form>使用 post 方法从 html 中的标签接收登录信息并验证用户,然后 user_id 将存储在会话中以检查@app.before_request会话是否包含 user_id。在 locallost 中进行测试时代码运行良好,并且通过 1 次登录我可以看到不同的页面。但是在主服务器上,在我登录后,它会导航到第一页,通过刷新或导航到其他页面会话将删除并再次进入登录页面。

请你帮我看看是什么原因以及解决方法是什么?

登录页面发布方式:

其他页面检查方法:

0 投票
0 回答
49 浏览

flask - 一种检测烧瓶中会话过期的方法?

在 Flask 中,我想在会话超时时删除一些文件。我没有用户登录 - 任何人都可以上传图像并用它们做事。我希望图像在会话结束时消失。但是我如何检测到那是什么时候呢?

我相信将图像存储在 RAM 中是没有意义的,这就是为什么我想将它们保存在服务器上并再次删除它们的原因。

编辑:查看功能的代码和用于渲染 PDF 的代码,其中包含要在会话超时时删除的图像。

视图.py:

我的pdf.html:

0 投票
0 回答
37 浏览

python - 渲染模板时烧瓶无法初始化我的课程

我使用烧瓶:

我想在一个类中封装一些会话操作方法,如下所示:

为了通过以下函数在模板中呈现这两个属性:

但是,不同的设备获得相同的输出,这意味着不同设备的输出Session.ip相同Session.name。我认为类Session没有正确初始化。

0 投票
1 回答
231 浏览

python - 用户警告:“会话”cookie 太大:值为 14773751 字节,但标头需要 26 个额外字节

我需要将数据框存储在烧瓶会话中,我这样做:

我有这个错误:

我添加这一行:

但没有任何改变!

我该如何解决这个问题?

0 投票
0 回答
197 浏览

python - Flask Session 在刷新时丢失登录会话数据

我目前正在使用 Flask 和 Flask Socketio 构建一个聊天应用程序。为了保存客户端当前的聊天室,我使用会话类型为“文件系统”的 flask_session 模块。我还使用 Flask-Login 模块,因此客户端使用帐户登录。因此,当我登录客户端时,会话包含来自 Flask-Login 模块的客户端登录数据。但是一旦我刷新聊天页面,Flask_login 数据就消失了,Flask-Login 模块中的当前用户变量变成了一个AnonymousMixin导致我的程序崩溃的对象。那么是什么原因导致FileSystemSession刷新页面后丢失了 current_user 数据呢?

这是我打印会话以及current_user页面刷新前后的输出:

前:

后:

这是我的代码:

__init__.py

视图.py

我不知道这是否重要,但我也加入了flask_socketio在房间改变时改变会话的部分:

0 投票
0 回答
57 浏览

python - 如何使用 API 的 Flask-Sessions 管理 spotipy 会话?

问题描述

您好,我一直在开发一个后端服务器,我希望能够使用它来处理用户的 Spotify 会话。我正在使用 Flask,我从此处的 Spotipy 文档中找到了一个非常有用的示例。

我遇到的问题是来自 Flask 的会话似乎没有在 API 调用之间保持它们的状态,我一直在努力修复它。这是我的设置:

api.py

Spotify.py

get 方法中的所有内容都可以正常工作!我可以登录到 spotify,它甚至会在该方法期间生成一个 uuid 并将其保存到会话中,但是在重定向之后对 API 的每次后续调用都会在会话文件夹中创建一个新会话。它归结为我不确定如何让烧瓶认识到它应该使用已经创建的会话。

从前端获取请求

这个工作得很好。链接是在 React 中生成和设置的。

这个请求清楚地表明会话 uuid 没有被维护,因为烧瓶服务器抛出错误。

我试图解决这个问题

确保正确的 CORS 管理 按照此处给出的解决方案,我设置了来自前端的获取请求以启用凭据,但它仍然无法识别该请求来自同一会话的同一位置。

我真的一直在这里挣扎,所以任何帮助将不胜感激,非常感谢您的宝贵时间!

0 投票
0 回答
184 浏览

python - Flask-Session 刷新后丢失 Flask-Login 会话数据

我目前正在使用 Flask、Flask-Session、Flask-SocketIO 和 Flask-Login 构建具有不同房间的聊天应用程序。我将用户的当前房间保存在会话中,以便可以显示基于该房间的信息。我正在从 Flask-SocketIO 事件更新此会话数据,我只能通过使用 Flask-Session 模块而不是来自 Flask 的内置会话来做到这一点。因此,当我使用 Flask-Login 登录用户时,当前用户的数据将保存在此 Flask-Session 会话中,会话类型为“文件系统”。然后当我刷新页面时,Flask-Login 数据不再在会话中,这导致我的程序崩溃,因为当前用户现在是 AnonymousUserMixin 对象,因此用户已注销。那么是什么导致会话失去当前用户' 的数据?一起使用 Flask-Session 和 Flask-Login 有问题吗?还是我只是在配置上做错了什么?

这是刷新前后会话的外观:

前:

后:

如您所见,来自 Flask-Login 模块的会话数据消失了,这就是它说没有用户登录的原因。

这是我的代码:

初始化.py:

验证码:

视图.py:

应用程序.py

0 投票
1 回答
141 浏览

python - 尝试从另一个处理程序函数访问烧瓶会话数据时出现关键错误

我正在使用 dialogflow 实现烧瓶包来构建一个简单的聊天机器人。当我尝试访问之前在get_Name_ID(agent)处理程序中设置的def goalName(agent)处理程序中的会话变量时,我从 Heroku 日志中收到一条关键错误消息。

这是我正在使用的网络钩子:

这是第一个处理函数

这是第二个处理函数:

我以以下方式设置了烧瓶会话:

我尝试了以下方法:

  1. 删除烧瓶会话包并使用内置烧瓶会话但没有成功。
  2. 我已经设置了简单的路线来测试会话,并且工作正常。但它无法在处理程序函数中工作。

从第二个处理程序访问会话数据时出现关键错误:

_ 2021-08-05T10:47:48.928371+00:00 应用程序 [web.1]:返回 super()。getitem (key) 2021-08-05T10:47:48.928372+00:00 app[web.1]: KeyError: 'u_id

我不确定发生了什么?任何帮助将非常感激!

0 投票
0 回答
66 浏览

python - Python Flask - 从 open_session 调用时中止(400)不使用预期的模板

对于我的应用程序,我在 flask_session 的帮助下在数据库中管理服务器上的会话数据。

我想修改行为,以便仅当远程地址不在 IP 黑名单上时才创建会话。

我已经修改了 SessionInterface 的 open_session 以包括以下内容:

为了标记更好的错误,我创建了错误处理程序:

数据库防火墙查找有效,并且按预期调用了 abort(400)。

问题是来自 open_session 的中止调用不会触发模板的使用。当从链接到应用程序的任何蓝图视图调用中止时,它确实使用模板。

如何强制使用我从 open_session 准备的中止模板?

0 投票
2 回答
182 浏览

python - Flask-session TypeError:“NoneType”和“datetime.datetime”的实例之间不支持“<=”

Flask 不断吐出这个错误:

TypeError: '<=' not supported between instances of 'NoneType' and 'datetime.datetime'.

显然,flask-session 模块正在尝试将会话过期时间与当前时间进行比较。我尝试将会话过期设置为一天以避免其值为无,但它似乎不起作用。如果我们将会话过期设置为设定值,我认为它可能会解决问题。

错误