2013-06-29 56 views

回答

4

它取決於您正在使用的數據庫後端。第一種假設你有一個基於SQL的數據庫引擎。這並非總是如此。相反,第二個將在任何情況下工作(如果後端是專門設計的)。例如幾年前有一個LDAP後端被設計成這樣,但LDAP查詢根本不使用SQL語言。

在所有情況下,我建議你到使用第二個。如果要製作可重複使用的長期代碼,這是更好的方法。

也有其他的想法更喜歡第二個到第一個

  • 避免可能的SQL注入;不需要知道數據庫設計(表名,字段名);不需要知道數據庫設計(表名,字段名);不需要知道數據庫設計
  • 通用代碼優於特定代碼;
  • ,而且,它是短...

但有時你將不得不使用的第一個,當你做特定的操作(調用特定後端的功能),但避免他們儘可能

簡而言之,請使用第二個!

1

從Django中documentation

當模型查詢API的還遠遠不夠,你可以回落到撰寫原始SQL

對於所有方面,Django的查詢集API可以幫助您很多選項來自定義您的查詢。但是在某些情況下,您需要使用非常具體的查詢,而django api變得不足。但在使用原始SQL之前,最好閱讀所有Queryset Api文檔並瞭解有關django queryset api的所有內容。

相關問題