12

我正在使用 MongoDB 作为我的主要(直到现在)数据库,并且由于 google 和它为我提供的链接,我在 Django 或 Pyramid 之间感到困惑。

我对 python 很满意,但从未在 python 中进行过 Web 开发(我在 PHP 中做过)。现在因为我将使用 Mongo,所以我不会使用 Django ORM,这会带走人们与 Django 相关联的开发便利性吗?

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

或者我应该使用 django fork django-noreldjango mongodb 引擎(尽管它们没有被积极维护)或者我应该使用 Pyramid,因为我计划使用 jinja2 作为我的模板层,这样 django 的两个部分对我来说毫无用处。

从 django 中删除这些电池后,它仍然是一个为有期限的人提供的框架吗?

建议?

4

3 回答 3

12

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

优点:

  • Pyramid 对于全栈框架来说是非常轻量级的。引擎盖下发生了最少量的“魔法”。我能够把我的头包裹在所有的碎片上。
  • 它不像 Django 那样固执己见。您可以相对轻松地即插即用您需要的任何模板引擎或数据库。
  • Pyramid 与其他全栈框架之间的性能基准给我留下了深刻的印象。
  • Pylons/Pyramid 100% 代码覆盖率和“只为你吃的东西付费”的文化对我自己的开发风格很有吸引力。

缺点:

  • 社区正在成长,但仍不如 Django 成熟
  • 有很多文档,但没有一些 Django 文档那么健壮
  • 缺乏“魔法”和对初学者友好的文档使得学习曲线更加陡峭。

至于在 MongoDB 中使用 ORM;我建议您一开始就尝试构建没有一个。在尝试了一些 mongodb ORM 之后,我最终回到了使用 Colander 或 Validictory 进行验证的普通 pymongo。Pymongo 已经非常类似于 ORM,快速且灵活。我觉得额外的抽象层剥夺了这种灵活性,并导致我编写了比需要更多的代码。

于 2012-11-02T20:08:10.393 回答
9

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

Flask 有几个 MongoDB 扩展,有助于将 MongoDB 集成到框架中,但我也强烈推荐mongoengine ORM。从事 mongoengine 工作的人之一发布了 Flask 集成的扩展Flask-MongoEngine

于 2012-11-01T22:33:09.033 回答
4

全部尝试(Django、Pyramid、Flask),阅读文档,你就完成了。如果您选择 Django,您将不会使用它的某些部分(orm、formlib),仅此而已。

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

于 2012-11-02T08:26:17.513 回答