在一段时间后,我如何更改FlaskSQLAlchemy URI?

2024-07-08 10:21:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Flask SQLAlchemy连接到awsrds上的Postgres数据库。连接到数据库的密码每15分钟过期一次,之后我需要为数据库的新连接生成一个新密码(打开连接就可以了)。在

我不知道如何配置Flask SQLAlchemy来使用函数来生成SQLALCHEMY_DATABASE_URI配置参数。关于这一点的所有文档和讨论都是在启动时使用静态值集的。在

我知道如何使用常规的SQLAlchemy和作用域会话等来实现这一点,但我真的希望能有一个使用Flask SQLAlchemy的解决方案。在


Tags: 函数文档数据库密码flask参数sqlalchemy静态
1条回答
网友
1楼 · 发布于 2024-07-08 10:21:48

出于完整性的考虑,我使用了一个custom connection function像@DanilaGanchar建议的那样。在

要在Flask SQLAlchemy中配置它,您需要使用v2.4.0或更高版本(顺便说一下,它只是released the day before I asked this question)。该版本有一个^{}配置,允许为SQLAlchemy的create_engine函数传入kwargs字典。在

一个重要的注意事项是Flask SQLAlchemy仍然需要SQLALCHEMY_DATABASE_URI的值,即使您的creator函数正在处理创建连接。在

所以完整的解决方案看起来像

# config.py

def _get_conection():
    # Get all your connection information
    return psycopg2.connect(host=host, port=5432, password=password, ...

SQLALCHEMY_DATABASE_URI = "postgresql+pyscopg2://"
SQLALCHEMY_ENGINE_OPTIONS = {"creator": _get_connection}
# More settings etc.
^{pr2}$

相关问题 更多 >

    热门问题