2010-09-13 78 views
4

當使用django時,我相信你可以換出sqlalchemy的內置orm(不確定如何?)。django orm與sqlachemy,他們基本上是一樣的東西?

它們兩者基本上都是一樣的東西,還是兩者之間明顯的贏家?

+0

就我所知,您無法使用conql應用程序和SqlAlchemy,儘管您可以使用某種反射來解決此問題。在Django中使用SqlAlchemy,就像在任何其他Python模塊中一樣,在視圖中使用它。 – 2010-09-13 13:52:59

回答

6

當使用django時,我相信你可以換出sqlalchemy的內建orm(不知道怎麼做?)。

您可以在Django應用程序中使用SQLAlchemy。這並不意味着你可以「交換」出ORM。如果您用SQLAlchemy完全替代Django的ORM,Django的一些內置電池將停止工作。例如,管理員應用程序不起作用。

我已閱讀過有關人using。 Django的ORM讓電池工作,SQLAlchemy解決複雜的SQL關係和查詢問題。

它們是基本相同還是兩者之間有明顯的優勢?

他們不是一回事。 SQLAlchemy更多多功能比Django的ORM。例如,雖然Django的ORM將業務邏輯層和持久層緊密結合到模型中,但SQLAlchemy會讓您將它們分開。

另一方面,SQLAlchemy的學習曲線陡峭,對許多項目來說都是一種矯枉過正。現有的SQLAlchemy遷移工具可能不容易與Django集成。

所有說,我不會宣佈要麼「贏家」。他們是大致相似的工具,但有自己的優勢,弱點和最適合的情況。

雖然你在這個問題上,但閱讀這個(日期但相關)blog post關於Django ORM的缺點以及它如何與SQLAlchemy進行比較並沒有什麼壞處。

0

SQLAlchemy比Django ORM更強大,但也更復雜。

Elixir在複雜度上更接近Django ORM的SQLAlchemy之上提供了一個接口,但如果單靠Elixir還不夠,還可以使用SQLAlchemy中的構造。例如,我發現SQLAlchemy的AssociationProxy類在多個場合很有用。您只需將一個AssociationProxy字段放入Elixir模型類中即可。

相關問題