如何在flask-sqlalchemy中选择数据库绑定

2 投票
1 回答
2480 浏览
提问于 2025-04-18 14:43

我在Flask里有两个数据库连接,一个叫'默认',另一个叫'sus'。我在模型里用了bind_key,这样做是没问题的。

class Person(db.Model):
    __tablename__ = 'persons'
    __bind_key__ = 'sus'
    id = Column(Integer, primary_key=True)
    name = Column(Unicode)
Person.query.get(5)

但是现在我需要从'sus'这个连接来执行操作:

from flask.ext.sqlalchemy import SQLAlchemy
from sqlalchemy import func

db = SQLAlchemy(app)
db.session.query(func.do_something(some_params)).first()
db.session.commit()

结果我得到了'默认'的连接,而不是'sus'。我该怎么办呢?

1 个回答

0

你的 db.session 查询根本没有使用到 Person 模型,所以它对 __bind_key__ 一无所知。

试着改写你的查询,这样你就可以用 Person.query.filter(...).first() 了。

撰写回答