python - Flask session 忘记请求之间的条目

标签 python jquery flask session-variables session-cookies

我正在使用最新的 Flask/Werkzeug (Flask 0.9) 客户端 session 来保存请求之间的信息。 session 未设置为持久性(因为我同意在浏览器关闭时删除 cookie)。

我的问题如下:

我使用一些服务器端代码用一个条目填充 Flask session 变量。在此之后,Session 变量看起来像这样:

<SecureCookieSession {u'items': SOMENOTVERYIMPORTANTDICTIONARY}, '_fresh': True, 'user_id': u'1', 'csrf': '0aef1995cdf2cxx0233fdf3321d17fc7267f3b32', '_id': 'someUNIQUEcode'}*>

我使用此信息来呈现一个页面,该页面执行 GET 请求(通过 JQuery)到同一个 Flask 应用程序,但突然包含 session 中“项目”条目的字典消失了:

<SecureCookieSession {'_fresh': True, 'user_id': u'1', 'csrf': '0aef1995cdf2cxx0233fdf3321d17fc7267f3b32', '_id': 'someUNIQUEcode'}>

我四处搜索了一下,认为这可能与我在本地主机上进行测试有关(127.0.0.1 与本地主机不同)。我修复了我的主机文件并添加了一个“dev.localhost”条目以确保所有请求都来自同一主机。

此外,我的浏览器 (Chrome) 的开发人员面板显示了与发送到服务器的 session cookie 完全相同的标识符。

此外,设置 session.modified = True 也没有帮助。

请求之间唯一发生变化的是

__utmb=122666782.18.10.1363877633

对于第一个请求(填充 items 条目的请求)与第二个请求

__utmb=122666782.19.10.1363877633

认为它仍然可能是与 Ajax 相关的东西。我在简单的页面重新加载后测试了 session 变量的内容:items 条目仍然从 session 中消失。

如有任何帮助,我们将不胜感激。

最佳答案

事实证明,发送回客户端 (Chrome) 的 cookie 超过了 4096 字节的 cookie 大小限制。显然 Django 默认使用服务器端 session ,这使得这个问题只有在我将代码移至 Flask 时才会出现。在 Flask 中使用服务器端 session ,例如 flask-kvsession其他人应该解决这个问题。

关于python - Flask session 忘记请求之间的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15552418/

相关文章:

python - Python 中的受限泛型类型提示

Jquery 检查每个段落的日期,检查日期是否是过去/当前并添加类

python - 对无响应的 Flask 路由的调用设置超时(更新)

python - 在 Flask-SQLAlchemy 中,我应该在哪里初始化和存储数据库对象?

javascript - 如何将 Python 连接到 Node.js?

java - Java 中是否有 "in"Python 关键字等效项?

python - 获取 Flask 请求中收到的数据

python - django- celery : TypeError: can only concatenate tuple (not "NoneType") to tuple

javascript - carouFredSel 复制分页项目符号

javascript - 使用 jquery 计算表行产生了错误的答案