我正在使用SqlAlchemy与现有的PostgreSQL数据库进行交互。

我需要访问以多对多关系组织的数据。该文档描述了如何创建关系,但我找不到一个整齐地加载和查询现有关系的示例。

有帮助吗?

解决方案

查询现有关系与创建新关系并没有什么不同。您几乎编写相同的代码,但指定已存在的表和列名称,当然您不需要SQLAlchemy来发出 CREATE TABLE 语句。

请参阅 http://www.sqlalchemy.org/ docs / 05 / mappers.html#many-to-many 。您需要做的就是为示例中的现有父表,子表和关联表指定外键列,并指定 autoload = True 以填写表上的其他字段。如果您的关联表存储了其他信息,就像它们几乎总是那样,那么您应该将多对多关系分解为两个多对一关系。

我在使用MySQL时学习了SQLAlchemy。使用该数据库,我总是必须指定外键关系,因为它们不是明确的数据库约束。您可能会很幸运,能够从您的数据库中反映更多内容,但您可能更喜欢使用 http ://pypi.python.org/pypi/sqlautocode 只是编码整个数据库架构并避免反射延迟。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top