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

python-3.x - 无法使用 Redis 和 Flask-Session 在 Ubuntu 18.04 中使用 PHPSESSID

我知道这个问题可能有点晦涩难懂,甚至可能不在正确的堆栈交换中。所以我要从这里开始。

我正在flask跑步flask-sessionredis

我的应用程序配置设置SESSION_TYPE为“redis”

我也u-msgpack-python用于与 PHP 与picklein的兼容性flask_session/session.py(在 dist 包中手动更改),但这似乎与它是否有效无关。

在 Debian 9 或 Ubuntu 16.04 上运行此配置时,一切正常。(还有 Python 3.4 或 3.5,以及 PHP 7.0,以及 Apache 或 Nginx(两者都可以))

但是,当我使用 Python 3.6 在 Ubuntu 18.04 上运行完全相同的代码库时,它不会保留会话。

会话 cookie 名称是PHPSESSID,键前缀是PHPSESSID:

但是..当我将 cookie 名称更改为类似的名称时MYSESSID,一切正常并在 Ubuntu 18.04 上保持会话。一旦我将其更改为 晒PHPSESSID,它就无法举行会议。

我已经监控了 Redis 服务器,我可以看到会话带有数据,所以我知道它正在正常通信。

其他信息:

运行:Nginx 1.14.0、Python 3.6、Ubuntu 18.04、PHP 7.2

任何方向或见解都会有所帮助。也许是PHP版本?

如有必要,请随意更改标签,或询问更多信息,我会尽可能提供。我对服务器具有完全的 root 访问权限。

0 投票
1 回答
1362 浏览

python - 游戏的烧瓶计数器

我正在 Flask 上创建一个游戏,并希望在整个会话中都有一个计数器。我为项目的总体大纲整理了一些伪代码。基本上,它是一个脚本,它从数据库中提取一个随机问题,收集用户输入,返回正确答案,然后从用户输入路径重新开始。我想添加一个无论路由功能如何都会出现的计数器。我查看了 Flask 会话,但令人困惑的是在哪里或如何实施......有什么想法/建议吗?会话或其他?

0 投票
1 回答
1512 浏览

javascript - 烧瓶传递 json 和 render_template

我是新开发人员,我有一个带有数据的 Json 对象,我正在尝试使用 render_template 将它传递到某个页面

我已经看到了几个关于这个的答案,但由于某种原因,他们都没有为我工作

我知道 Javascript 和 Flask 之间的联系是稳固的,因为我可以在 JS 的 Onload 函数中使用 console.log("string") 但它似乎无法识别我通过渲染模板传递的任何内容

到目前为止我尝试过的事情

将 json 对象保存为变量并将其与渲染模板一起传递。

在 JS 上

所以我也在测试我是否可以传递 jinja2 代码或 flask_login 代码实际上将它保存在某种变量中并用 JS 响应它

第二次尝试是尝试 jsonify 方法并解析它

在 python 上:

在 JS 端:


我得到的输出是

0 投票
2 回答
1065 浏览

python - Apache 显示权限被拒绝:flask_session 错误

我试图让烧瓶与虚拟环境和 wsgi 配置为工作但 Apache 不断给我这个错误:

[2018 年 11 月 13 日星期二 13:23:55.179153] [wsgi:error] [pid 11819] [xxxx:xxxx] app.session_interface = self._get_interface(app)

[2018 年 11 月 13 日星期二 13:23:55.179160] [wsgi:error] [pid 11819] [xxxx:xxxx] 文件“/var/www/html/project/python/lib/python3.6/site-packages/flask_session/ init .py”,第 93 行,在 _get_interface 中

[2018 年 11 月 13 日星期二 13:23:55.179163] [wsgi:error] [pid 11819] [xxxx:xxxx] config['SESSION_USE_SIGNER'], config['SESSION_PERMANENT'])

[2018 年 11 月 13 日星期二 13:23:55.179169] [wsgi:error] [pid 11819] [xxxx:xxxx] 文件“/var/www/html/project/python/lib/python3.6/site-packages/flask_session/ session.py”,第 314 行,在init中

[2018 年 11 月 13 日星期二 13:23:55.179172] [wsgi:error] [pid 11819] [xxxx:xxxx] self.cache = FileSystemCache(cache_dir, threshold=threshold, mode=mode)

[2018 年 11 月 13 日星期二 13:23:55.179177] [wsgi:error] [pid 11819] [xxxx:xxxx] 文件“/var/www/html/project/python/lib/python3.6/site-packages/werkzeug/ contrib/cache.py”,第 717 行,在init中

[2018 年 11 月 13 日星期二 13:23:55.179180] [wsgi:error] [pid 11819] [xxxx:xxxx] os.makedirs(self._path)

[2018 年 11 月 13 日星期二 13:23:55.179185] [wsgi:error] [pid 11819] [xxxx:xxxx] 文件“/lib64/python3.6/os.py”,第 220 行,在 makedirs

[2018 年 11 月 13 日星期二 13:23:55.179188] [wsgi:error] [pid 11819] [xxxx:xxxx] mkdir(name, mode)

[2018 年 11 月 13 日星期二 13:23:55.179215] [wsgi:error] [pid 11819] [xxxx:xxxx] PermissionError: [Errno 13] Permission denied: '/flask_session'

我尝试给项目不同的权限,但没有任何效果

0 投票
0 回答
250 浏览

python - 烧瓶会话:如何关闭会话中的资源

在对我的烧瓶 API 的每个请求中,我都在为资源创建一个新句柄。这可能会极大地浪费性能,因为这些句柄非常聪明并且可以缓存大量交互。我想将手柄移到我的flask-session。但如果不再使用把手,则需要将其关闭。这可能与会话有关吗?

我想移动这段代码

到这个代码

据我所知,API没有涵盖这种情况。所以我想我会简单地扩展现有的会话并实现我自己的资源处理会话。但这很棘手,没有end_session回调。只有open_sessionsave_session。来源在这里:https ://github.com/fengsp/flask-session/blob/master/flask_session/sessions.py

与烧瓶会话无关,但为了使问题更精确:我不能简单地将句柄设为全局并让所有请求共享它。这是一个设计问题,我需要各个手柄不要相互影响。(另外还有线程安全的问题。很确定这些句柄不是线程安全的)。

0 投票
0 回答
80 浏览

python - 当 Flask 应用程序开始使用 Flask 会话时设置空字典的函数

我想用空字典启动 Flask 应用程序,稍后由用户填充,但是,当我像这样初始化它时:

每当用户返回或输入 index.html 时,它都会重置为空。我可以在其他地方初始化字典并且只有在部署应用程序后才可以?

0 投票
1 回答
8918 浏览

python - 清理服务器端会话文件 - 使用文件系统的 Flask-Session

我选择使用 Flask-Session 来使用 Flask 的服务器端会话管理。

我使用存储数据,filesystem并且正如预期的那样,这些文件存储/flask_session在我的配置目录中的一个文件夹下。

这是我在我的__init__.py

正如预期的那样,会话文件生成并存储在/flask_session

问题是:这些文件是否会flask_session在特定时间后自动删除(即会话存储在客户端)?如果是,是否可以减少/增加此时间?

0 投票
0 回答
274 浏览

flask-session - 在会话中使用烧瓶 auth.verify_password

我正在努力让身份验证正常工作。我通过 api 而不是 Web 应用程序来控制登录行为。为此,我正在使用flask sessionand HTTPBasicAuth()。用户登录后直到他注销,我不希望他为每个对 api 的请求重新登录(或)发布身份验证。为此,我正在利用session['username'].

我的代码auth.verify_password如下。

下次我打电话时get_products,我不想传递auth给请求标头。当我这样做时,上面的代码不起作用。我觉得在某处(或)我的方法完全错误的地方缺少一些代码。session['username']似乎并没有持续下去。它每次都必须通过登录方法,而我的目标是跳过登录,直到用户注销。在这里欣赏任何建议。

0 投票
2 回答
737 浏览

flask - Kubernetes 上的 PGadmin4:使用 ELB 时会话无效

我对 PGAdmin4 有一个奇怪的问题。

我的设置

  • pgadmin4.1 部署就kubernetes使用chorss/docker-pgadmin4镜像。一个 POD 仅用于简化故障排除;
  • Nginx ingress controller作为集群上的反向代理;
  • Classic ELB在前面对集群上的传入流量进行负载平衡。

ELB <=> NGINX <=> PGADMIN

从 DNS 的角度来看,pgadmin 的主机名是指向 ELB 的 CNAME。

问题

应用程序可以正确访问,用户可以登录,一切正常。问题是在几分钟(大约 2-3 分钟)后,会话失效,并要求用户再次登录。无论是否积极使用 pgadmin,都会发生这种情况。

经过无数小时的排查,我发现问题是在ELB的CNAME的DNS解析切换到另一个IP地址时出现的。

事实上,我试过:

  • 通过直接连接到k8s service节点端口直接连接到 pod => 会话不会过期;
  • 直接连接nginx(绕过 ELB)=> 会话不会过期;
  • 在我的主机文件中映射 ELB 的 IP 地址之一 => 会话不会过期。

鉴于上述测试,我得出的结论是 Flask 应用程序(PGAdmin4 显然是一个 Python Flask 应用程序)在我的主机名的远程地址更改后认为我的 cookie 无效。

任何可以帮助我解决此问题的 Flask 开发人员?关于我可能会丢失的东西的任何其他想法?

0 投票
0 回答
231 浏览

python-3.x - 在烧瓶中,我无法从 facebook messenger 获取会话变量

我正在使用烧瓶会话在我的聊天机器人中实现多用户并发,该聊天机器人嵌入在 FB Messenger 中,后端在 python 中实现。

下面是代码:

session.get 在烧瓶中不起作用,我无法获取值。所以我无法将状态、年龄、性别、q_number、症状、上一个、条件发送到其他功能。请帮助我克服这个问题。