flask利用sqlalchemy框架如何操作两个或者多个mysql的数据库database

时间:2024-03-23 19:04:18

有时项目中可能一个项目,比如单点登录。这不仅仅操作一个database 可能还会涉及到 操作另一个database的表,甚至更多个。达到灵活切换 , 这时就麻烦了 这里数据库主要讲的是 mysql

其实Flask-SQLAlchemy官网已经考虑到了,这里主要讲一下项目中它具体的配置,与官网有所不同
主要用到他的设置的参数 SQLALCHEMY_BINDS
flask利用sqlalchemy框架如何操作两个或者多个mysql的数据库database
这里主要记住键 “otherdb” 相当于这里我们命的名 后续每个 model会用到

比如我现在想用到 other_test数据库的表 ,如下
flask利用sqlalchemy框架如何操作两个或者多个mysql的数据库database
如果您在模型上指定了 bind_key ,您可以用它们准确地做您想要的。模型会自行连 接到指定的数据库连接。

还有种方法

如果觉得不想用model文件而是想 而是有时sql语句比较复杂或者一些特殊的原因 SQLAlchemy已不能满足需求 此时就需要写原生的sql来执行 这种情况也可以操作其他数据库的表

flask利用sqlalchemy框架如何操作两个或者多个mysql的数据库database
这种就是有时 需要写原生底层的sql的时候 可以操作其他的数据库 不需要用到SQLAlchemy 固有写法的时候 当然可以封装成函数 使用的时候调用也比较方便
flask利用sqlalchemy框架如何操作两个或者多个mysql的数据库database

直接传递 sql语句 就可以实现不同数据库操作 ,非常方便。

参考官网:
http://www.pythondoc.com/flask-sqlalchemy/binds.html#binds