用 Binds 操作多个数据库
从 0.12 开始, Flask-SQLAlchemy 可以容易地连接到多个数据库。为了实现 这个功能,预配置了 SQLAlchemy 来支持多个“binds”。
什么是 binds ?在 SQLAlchemy 中,一个 bind 是可以执行 SQL 语句 且通常是一 个连接或引擎的东西。在 Flask-SQLAlchemy 中, bind 总是背后自动为你创建好 的引擎。这些引擎中的每个之后都会关联一个短键(bind key)。这个键会在模型 声明时使用来把一个模型关联到一个特定引擎。
如果没有为模型指定 bind key ,会默认连接(即 SQLALCHEMY_DATABASE_URI 配置的值)。
示例配置
下面的配置声明了三个数据库连接:特殊的默认值和另外两个分别名为 users (用于用户)和 appmeat (连接到一个提供只读访问应用内部数据的 sqlite 数据库):
SQLALCHEMY_DATABASE_URI = 'postgres://localhost/main'
SQLALCHEMY_BINDS = {
'users': 'mysqldb://localhost/users',