当MongoDB用作数据库时使用哪个python web框架(django或django-norel或pyramid)

时间:2012-11-01 22:06:25

标签: python django mongodb pyramid

我使用MongoDB作为我的主要(并且直到现在)数据库,因为谷歌及其提供的链接我在Django或金字塔之间感到困惑。

我对python感到满意,但从未在python中进行过Web开发(我已经在PHP中完成了)。现在因为我将使用Mongo所以我不会使用Django ORM会带走人们与Django相关联的易用性吗?

我是Django的新手(只需几个小时),所以我不确定ORM影响框架的哪些部分。

或者我应该使用带有django-norel的django前叉django mongodb engine(虽然它们没有被主动维护)或者我应该使用金字塔,因为我打算使用jinja2作为我的模板层,这样就可以制作2个部分django对我没用。

从django中取出这些电池后,它仍然是一个适用于截止日期的人的框架吗?

么?

3 个答案:

答案 0 :(得分:12)

一两年前,我还在django和金字塔之间决定使用mongodb构建一个高性能的Web应用程序。我最终选择了金字塔:

优点:

  • 对于完整的堆栈框架,金字塔非常轻。有一个极少量的魔法'在引擎盖下进行。我能够把头包裹起来。
  • 它不像Django那样自以为是。您可以相对轻松地即插即用所需的模板引擎或数据库。
  • Pyramid与其他完整堆栈框架之间的性能基准让我印象深刻。
  • 100%代码覆盖的Pylons / Pyramid文化和#34;只支付您吃的东西"对我自己的发展风格很有吸引力。

缺点:

  • 社区正在增长,但仍未像Django那样成熟
  • 有很多文档,但它不像那些Django文档那样健壮
  • 缺乏魔法'和初学者友好的文档使学习曲线更加陡峭。

至于在MongoDB中使用ORM;我建议你先尝试不用一个建筑。在尝试了几个mongodb ORM之后,我最终回到普通pymongo用Colander或Validictory进行验证。 Pymongo已经非常像ORM,快速且灵活。我觉得额外的抽象层剥夺了这种灵活性,并使我编写了比需要更多的代码。

答案 1 :(得分:9)

我将建议一个尚未提及的替代方案:Flask。 Flask有一个非常棒的(尽管比Django小)社区,并且在extensions directory中有很多可用于常见网络应用扩展的扩展。

Flask有几个MongoDB扩展,它有助于将MongoDB集成到框架中,但我也强烈推荐使用mongoengine ORM。其中一位致力于mongoengine的人已经发布了Flask整合的扩展,Flask-MongoEngine

答案 2 :(得分:3)

尝试一下(Django,Pyramid,Flask),阅读文档,然后你就完成了。 如果您选择Django,您将不会使用它的某些部分(orm,formlib),而这就是全部。

另见此视频: https://www.10gen.com/presentations/mongosf-2011/mongodb-with-python-pylons-pyramid