2012-11-01 13 views
12

我使用MongoDB作爲我的主要數據庫(也是迄今爲止)數據庫,並且因爲Google和它提供給我的鏈接我在Django或金字塔之間感到困惑。當MongoDB被用作數據庫時使用哪個python web框架(django或django-norel或金字塔)

我很喜歡python,但從未在python中完成web開發(我在PHP中完成)。現在,因爲我將使用Mongo,所以我不會使用Django ORM會帶走與Django相關的開發容易程度嗎?

我是Django的新手(只有幾個小時),所以我不確定ORM影響框架的哪些部分。

或者我應該去與Django的叉django-noreldjango mongodb engine(他們沒有積極維護雖然)或我應該使用金字塔,因爲我打算使用的Jinja2作爲我的模板層,從而使兩個部分的Django的對我沒用。

從django中刪除這些電池後,它仍然是真的,它爲截止日期的人的框架?

建議嗎?

+0

Django主要的性吸引力是管理應用程序,它對於非關係數據庫並不是非常有用。考慮燒瓶。 –

+1

你想要建立什麼?選擇一個框架僅僅是因爲你想要的數據存儲,當可能有其他更重要的因素時,這將是愚蠢的。 –

+0

我想你不打算使用ORM或模板引擎,你不應該使用Django。 Flask確實聽起來很不錯。 –

回答

9

我打算建議一個尚未提及的替代方案:Flask。 Flask有一個非常棒的(儘管比Django小)社區,並且在extensions directory中有很多可用於常見web-app擴展的擴展。

Flask有幾個MongoDB擴展,它有助於將MongoDB集成到框架中,但我也強烈推薦mongoengine ORM。在mongoengine上工作的人之一已經發布了Flask集成的擴展,Flask-MongoEngine

+0

金字塔呢?我也聽到過很多好消息。 – lovesh

12

一年或兩年前我還Django和金字塔之間決定W/MongoDB中建立一個高性能的Web應用程序。我最終選擇了金字塔:

優點:

  • 金字塔是一個完整的堆棧框架重量很輕。引擎蓋下有一小部分「魔法」。我能夠將所有的東西都包裹起來。
  • 它不像Django那樣自以爲是。您可以輕鬆插拔任何您需要的模板引擎或數據庫。
  • 金字塔與其他完整堆棧框架之間的性能基準給我留下了深刻的印象。
  • 100%代碼覆蓋率和「只爲你吃東西而付出」的塔架/金字塔文化吸引了我自己的發展風格。

缺點:

  • 社區不斷增長,但仍沒有成熟的Django的
  • 有大量的文檔資料,但它不是一樣強大一些Django文檔在那裏
  • 缺乏'魔術'和初學者友好的文檔使學習曲線更加陡峭。

至於在MongoDB中使用ORM;我建議你一開始就嘗試沒有人的建築。在嘗試了幾個mongodb ORM之後,我最終回到了使用Colander或Validictory進行驗證的普通pymongo。 Pymongo已經非常類似ORM,速度快且靈活。我覺得額外的抽象層從這種靈活性中解脫出來,並導致我編寫比需要的更多的代碼。

+0

你嘗試過Flask嗎?因爲這裏有些人推薦Flask,我也讀了Flask。它看起來像Pyramid和Flask都遵循類似的即插即用哲學。 – lovesh

+4

我還沒有研究過Flask的小測試應用程序。我的理解是,像Flask和Bottle這樣的微框架專注於較小的Web應用程序,隨着應用程序變得越來越龐大和複雜,它變得很笨重:http://pyramid.readthedocs.org/en/1.0-branch/designdefense.html#microframeworks-更小的你好世界。此外,Chris McDonough還有一個新視頻,深入探討了django和金字塔之間的區別http://youtu.be/eN7h6ZbzMy0。 –

相關問題