为什么有不同的方法来选择使用SQLAlchemy?

时间:2014-10-01 11:54:51

标签: python sqlalchemy

我对选择查询的不同方法感到困惑。我看到的第一种方法是使用直接表对象及其select()函数。但是,如果查询需要联接操作,则您似乎不通过表对象加入,而是使用session.query()

为什么有不同的方法来执行这些查询,何时应该使用每种方法?

1 个答案:

答案 0 :(得分:1)

您正在看到SQLAlchemy的两个不同层的示例。

core layerselect)通常直接处理表格,有时候对构造查询更加冗长。 orm layersession.query)通常处理映射的类,并为加入和过滤提供了一些便利。

任何一方都完全有能力执行复杂的查询。

核心层可能更适合更大的查询,代价是表达结果不如orm提供的完整映射类。

通常,在orm层编写应用程序更简单,更友好,并且只在需要时才会删除到核心层。我建议您阅读这两个链接的页面,以熟悉两者并决定哪个适合您。