2012-08-22 23 views
3

我一直在通過Udacity,Code Academy和Google University學習Python。我現在有足夠的信心去開始學習Django。我的問題是我應該在SQL數據庫上學習Django - 無論是SQLite還是MySQL;還是應該在NoSQL數據庫(如Mongo)上學習Django?首次使用Django數據庫SQL或NoSQL?

我已閱讀所有關於這兩者,但有很多我不明白。 Mongo聽起來更好/更容易,但同時對於那些已經熟悉關係數據庫並且正在尋找更靈活的東西的人來說聽起來更好/更容易。

+0

你將在本地開發什麼操作系統(例如Windows,OS X等)? – Jeff

+0

OSX Snow Leopard – Ryan

回答

5

作爲初學者,使用sqlite學習Django可能是最容易的。你只需要爲數據庫提供一個位置並指定sqlite3作爲你的後端來使它工作,這很好。如果你想在以後使用postgres,這將會更多的工作,但它仍然是可行的。請參閱@ JonathanVanasco的評論。

如果你想最終使用NoSQL DB,Django目前不支持它。 Here是公認的第三方Django後端列表。

您可以通過名爲django-nonrel的第三方分支來使用Mongo,但是此特定實現不支持ManyToManyFields並具有其他一些限制。你可以在django-nonrel的this blog post上閱讀更多關於Mongo的信息。還有一些關於django-nonrel here的非官方文檔。

+1

note'django-nonrel'是一個叉子,並不是真正的模塊。 –

+0

謝謝,我添加了一個關於這個的註釋。 –

1

Postgres是一個很棒的Django數據庫。 sqlite是令人驚訝的發展。你將會做很多工作來試圖在你的第一個Django站點上不使用RDBMS。

Django的最大優勢之一是平滑的全棧集成,出色的文檔,貢獻應用程序,應用程序生態系統。選擇Mongo,你會失去很多。 GeoDjango也假設SQL,並且真的很喜歡postgres/postgis,而GeoDjango真的很棒。

如果你想使用Mongo,我可能會建議你從瓶子,瓶子,龍捲風,旋風或其他不太關於整個堆棧整合的東西開始,而不是假設你使用某個ORM。例如,Django教程假定您正在使用帶有SQL DB的ORM。

0

sqlite是最簡單的開始。如果您已經知道SQL擲硬幣在第一個項目中選擇MySQLPostgres

0

根據他們的wiki,Django做not officially support NoSQL databases(一個糟糕的決定恕我直言)。因此,如果您在Django上使用NoSQL路由,您需要輕鬆處理項目的非標準分支以及可能沒有完整記錄的錯誤。

因此對於Django的初學者來說,SQL是一個明顯的選擇。

也就是說,我在Django上的第一個數據庫是NoSQL數據庫,但我以前在其他平臺上使用過SQL數據庫。