mongodb+django 怎麼配置?
01-15
MongoEngine (http://mongoengine.org)
1. 提供了和 Django 原生 ORM 幾乎一樣的一切,功能已經相當強大;2. 用起來比 Django 原生 ORM 更簡潔更優雅;
3. MongoEngine 和 Django 「契合度」很高,Session,User 模塊幾乎可以直接平移過來,但MongoEngine 本身不依賴 Django,可以用在其他框架上;4. 本身很輕巧,文檔很豐富,所以文檔提供不了的細節,可以通過直接讀代碼來解決。當然缺點也是很明顯的,最不能習慣的就是 admin 沒了。django的ORM並不支持NoSQL,但是有一個叫django-nonrel的分支,擴展了django的ORM,支持部分NoSQL資料庫,其中包括mongodb
從我最後一次關心django-nonrel時它的可用度來看,實際生產環境使用還是很困難。比如說- mongodb類NoSQL天然沒有join操作,所以在django-nonrel中使用mongodb時沒有多表繼承功能,只能從abstract類繼承
- 沒有join的操作也意味著很多atomic的SQL查詢需要轉換成非atomic的nosql查詢
- 很多原ORM的特性在django-nonrel中使用會拋出NotImplemented的異常。
所以正常情況下請勿使用django-nonrel提供的nosql支持(除非你有興趣給它貢獻代碼)
如果確實需要django項目中使用mongodb,兩個解法
- 直接使用pymongo做model
- 用官方推薦的ORM-like layer http://api.mongodb.org/python/current/tools.html#orm-like-layers
我是根據Django的ORM的源代碼,自己寫了一個Mongodb版ORM,兼容DjangoORM的大部分操作
不需要配置,自己封裝一層直接用。如果你要 ORM,就另當別論了。
Django-MongoEngine MongoEngine/django-mongoengine
之前在一個項目中用過這個模塊,但是這個模塊的介紹中說這是不穩定的,現在就在考慮直接用
MongoEngine
暫時用pymongo可以很大的並發。
http://www.cnblogs.com/holbrook/archive/2012/03/11/2390715.html
研究明白了交流一下,我也在看這個,沒有整明白
推薦閱讀:
※是否框架的目的是不一樣的?
※知乎後台為什麼用python?
※可以多個server進程同時監聽一個unix socket文件么?
※Django和Flask這兩個框架在設計上各方面有什麼優缺點?
※Vim 中如何對 Python 進行代碼補全?