session - Flask Redis 服务器 session : Error in save_session

标签 session flask redis docker-compose

亲们: 我正在将我的 Flask 应用程序与用于 session 存储的 redis 移动到 docker 容器中。当 redis 在本地运行时,我的应用程序运行愉快。但是,当使用 redis 图像运行 docker-compose 时,我看到以下错误。无论我的 redis 容器正在运行还是停止,我都会收到相同的错误消息:

2017-04-02 03:36:09,861] ERROR in app: Exception on / [GET]
web_1    | Traceback (most recent call last):
web_1    |   File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1988, in wsgi_app
web_1    |     response = self.full_dispatch_request()
web_1    |   File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1643, in full_dispatch_request
web_1    |     response = self.process_response(response)
web_1    |   File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 1864, in process_response
web_1    |     self.save_session(ctx.session, response)
web_1    |   File "/usr/local/lib/python2.7/site-packages/flask/app.py", line 926, in save_session
web_1    |     return self.session_interface.save_session(self, session, response)
web_1    |   File "/usr/local/lib/python2.7/site-packages/flask_session/sessions.py", line 165, in save_session
web_1    |     self.redis.setex(name=self.key_prefix + session.sid, value=val,
web_1    | AttributeError: 'str' object has no attribute 'setex'

我已将以下配置属性添加到我的应用程序以进行 session 配置:

SESSION_TYPE = "redis"
SESSION_REDIS = "redis:6379"

我不认为这是一个 docker-compose 问题,因为我的应用程序能够成功连接到 MySQL 实例,不过,这是我的 docker-compose.yml 文件以防它指向某些东西:

version: "3"
services:
  mysql:
    build:
      context: db/
  web:
    build:
      context: web/
    ports:
    - "10080:80"
    depends_on:
    - "mysql"
    - "redis"
  redis:
    image: "redis:alpine"

最佳答案

想通了。问题出在 session 配置中。我不得不改变

SESSION_REDIS = "redis:6379"

SESSION_REDIS = redis.Redis("redis")

关于session - Flask Redis 服务器 session : Error in save_session,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43164505/

相关文章:

javascript - 使用带有 javascript 警报的 Jinja2 for 循环

python - 如何更改单个文档值的架构类型

python - Flask Caching 文件系统缓存是否跨进程共享?

ruby - 我可以序列化 ruby​​ Digest::SHA1 实例对象吗?

spring - 如何在 Spring Security 中找到用户的 IP?

php - 为什么 laravel 序列化 session 数据而不是 session 编码/解码

session - 使用断言 session 值的 CakePHP 测试

c# - 如何从单个命令中获取多个 Redis 列表

hash - 在 LRU 上删除 Redis Hash Key 的字段

php - zf2 session 验证失败