gpt4 book ai didi

heroku - 在 Heroku 上使用 Redis 的服务器端 Flask session

转载 作者:可可西里 更新时间:2023-11-01 11:14:55 27 4
gpt4 key购买 nike

我正在 Heroku 上部署一个 Flask 应用程序,出于各种原因需要实现服务器端 session ,但我不知道如何正确设置它。Heroku 的 docs关于如何连接非常简单:

import os
import redis

r = redis.from_url(os.environ.get("REDIS_URL"))

我正在尝试使用 Flask-Session extension 运行它.根据他们的快速入门示例:

from flask import Flask, session
from flask.ext.session import Session

app = Flask(__name__)
# Check Configuration section for more details
SESSION_TYPE = 'redis'
app.config.from_object(__name__)
Session(app)

@app.route('/set/')
def set():
session['key'] = 'value'
return 'ok'

我对两者的连接方式感到困惑,因为在后一个示例中甚至没有导入 redis 模块。在 Flask-session 页面上进一步阅读,有一个表格“扩展也理解的配置键列表:”,其中一个是“SESSION_REDIS”,描述为“A redis.Redis例如,默认连接到 127.0.0.1:6379”。我猜这是 Heroku 文档中的实例 (r),但是短语“扩展程序理解的键”让我不知道如何实际处理它。

最佳答案

是的,Flask-session 的文档非常糟糕。 扩展程序理解的 key 意味着您可以指定列出的配置选项,将它们传递给您的 Flask 应用程序,Flask session 将确认并使用这些选项。之所以称为键,是因为 Flask 应用程序接受键值字典形式的配置。

在 Flask-session 中,他们使用非常不寻常的方法来配置它:他们要求您传递已配置的 redis 客户端对象,而不是将主机、端口等选项作为字符串传递:

from flask import Flask, session
from flask_session import Session
from redis import Redis

app = Flask(__name__)
SESSION_TYPE = 'redis'
SESSION_REDIS = Redis(host="your_host", port=1234)
app.config.from_object(__name__)
Session(app)

关于heroku - 在 Heroku 上使用 Redis 的服务器端 Flask session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53095702/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com