Python 在一段时间后,如何更改炼金术URI?
我正在使用Flask SQLAlchemy连接到AWS RDS上的Postgres数据库。连接数据库的密码每15分钟过期一次,之后我需要为数据库的新连接生成一个新密码(打开的连接可以) 我不知道如何配置Flask SQLAlchemy以使用函数生成Python 在一段时间后,如何更改炼金术URI?,python,postgresql,flask,flask-sqlalchemy,rds,Python,Postgresql,Flask,Flask Sqlalchemy,Rds,我正在使用Flask SQLAlchemy连接到AWS RDS上的Postgres数据库。连接数据库的密码每15分钟过期一次,之后我需要为数据库的新连接生成一个新密码(打开的连接可以) 我不知道如何配置Flask SQLAlchemy以使用函数生成SQLAlchemy\u数据库\u URI配置参数。围绕这一点的所有文档和讨论都指向在启动时使用静态值集 我知道如何使用常规SQLAlchemy和作用域会话等来实现这一点,但我真的希望使用Flask SQLAlchemy来解决问题。为了完整起见,我使用
SQLAlchemy\u数据库\u URI
配置参数。围绕这一点的所有文档和讨论都指向在启动时使用静态值集
我知道如何使用常规SQLAlchemy和作用域会话等来实现这一点,但我真的希望使用Flask SQLAlchemy来解决问题。为了完整起见,我使用了@DanilaGanchar建议的类似方法来实现这一点 要在Flask SQLAlchemy中配置此功能,您需要使用v2.4.0或更高版本(只是顺便提一下)。该版本有一个配置,允许为SQLAlchemy的
create\u引擎
函数传入kwargs字典
一个重要的注意事项是,Flask SQLAlchemy仍然需要SQLAlchemy\u DATABASE\u 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.
你有没有试着使用或?看起来像是你需要的。@DanilaGanchar,是的,我认为一个自定义连接函数可以工作,尽管只有两天前的Flask SQLAlchemy发行版才可以,这是非常幸运的。
{“creator”:\u get\u Connection()}
应该是{“creator”:\u get\u Connection}
# app.py
from app import config
from app.db import db
def create_app():
app = Flask(__name__)
app.config_from_object(config)
db.init_app(app)
return app