在過去幾個月裏,有沒有人在Django(+1.10)中替換MongoDB的默認數據庫引擎?我在Google上獲得的所有信息都與6年或4年前相似。將Django +1.10連接到MongoDB
最公地結果包括MongoDB的發動機需要Django的nonrel(從Django的1.5真的老了叉),或mongoengine,也是給許多錯誤過時的庫,所以當你接一個,你會得到一個新的。
我不知道是否有任何「新」的方式來實現這一點。
在過去幾個月裏,有沒有人在Django(+1.10)中替換MongoDB的默認數據庫引擎?我在Google上獲得的所有信息都與6年或4年前相似。將Django +1.10連接到MongoDB
最公地結果包括MongoDB的發動機需要Django的nonrel(從Django的1.5真的老了叉),或mongoengine,也是給許多錯誤過時的庫,所以當你接一個,你會得到一個新的。
我不知道是否有任何「新」的方式來實現這一點。
看着https://djangopackages.org/grids/g/mongodb/,沒有生產就緒的MongoDB庫。除了您提到的其他軟件包之外,還有其他一些軟件包,例如https://github.com/jazzband/django-mongonaut,但它們都處於測試階段,它們有很多問題,並且它們不適用於最新版本的Django。
與多家建造和使用泊塢窗嘗試不同的版本組合的測試,我設法使用下面的版本以達到一個穩定和工作的Django MongoDB的應用:
Django==1.10.0
pymongo==2.7.1
six==1.10.0
mongoengine==0.9.0
安裝所需的庫後,編輯您的settings.py更新或添加以下內容
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.dummy'
}
}
AUTHENTICATION_BACKENDS = (
'mongoengine.django.auth.MongoEngineBackend',
)
from mongoengine import *
connect('database_name', host='host_ip', port=27017)
更改數據庫名稱和主機IP。如果沒有說明ip,它會默認連接到本地主機。
現在,運行您的應用程序應該已連接數據庫並且可以使用。 有關如何使用它的信息,請查看mongoengine documentation。
有多種方式可以集成MongoDB和Django。根據您採取的策略,您可能最終頭痛或順利起航!
作爲Web開發人員,你可能需要的Django連接的MongoDB的挑戰有兩種方式:
使用MongoDB的兼容模型框架:在你的Django項目使用像MongoEngine或明第三方框架。然而將錯過:
Django的SQL到MongoDB的transpiler - Djongo:戰略是把由Django的ORM生成到pymongo命令Django的SQL查詢語法。 Djongo是一個SQL到MongoDB查詢編譯器。它將每個SQL查詢字符串轉換爲一個mongoDB查詢文檔。因此,
如果您正在尋找更多信息,只需添加一行代碼就可以找到關於Using Django with MongoDB的文章。否則,您可以直接跳到djongo documentation並開始使用它。
你有什麼發現? –
在Django中使用Mongodb似乎不是一個好主意,因爲它具有最好的ORM之一,並且不會使用Django殺手功能。 – vtisnado
@vtisnado你解決了這個問題嗎?我在使用MongoDB的Djnago 1.11中面臨同樣的問題 – jignasha