2014-10-01 60 views
0

我很困惑不同的方式來做選擇查詢。我看到的第一種方法是使用直接表格對象和它的select()函數。但是,如果查詢需要連接操作,您似乎不通過表對象連接,而是使用session.query()爲什麼有不同的方法來選擇使用SQLAlchemy?

爲什麼有不同的方式來執行這些查詢,我應該什麼時候使用每種方法?

回答

1

您正在看到來自兩個不同層的SQLAlchemy的示例。

core layerselect)通常直接處理表,並且有時對構造查詢更詳細。 orm layersession.query)通常處理映射類,併爲聯接和過濾提供了一些便利。

任何一個完全能夠執行復雜的查詢。

核心層可能更適合於較大的查詢,代價是比orm提供的完整映射類的表達結果要少。

通常,在orm層編寫應用程序更容易,也更易於初學者使用,並且只在需要時才放入核心層。我建議閱讀這兩個鏈接的頁面以熟悉兩者,並決定哪些適合您。

相關問題