【问题标题】:which python web framework(django or django-norel or pyramid) to use when MongoDB is used as a database将 MongoDB 用作数据库时使用哪个 python web 框架(django 或 django-norel 或金字塔)
【发布时间】:2012-11-01 22:06:24
【问题描述】:

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

我对 python 很熟悉,但从来没有用 python 做过 web 开发(我用 PHP 做过)。现在因为我将使用 Mongo,所以我不会使用 Django ORM,这会带走人们与 Django 相关联的开发便利性吗?

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

或者我应该使用 django fork django-noreldjango mongodb engine(尽管它们没有得到积极维护)还是应该使用 Pyramid 因为我计划使用 jinja2 作为我的模板层,这样 django 的 2 个部分就无用了我。

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

建议?

【问题讨论】:

  • Django 主要的魅力是管理应用程序,它对于非关系型数据库并不是很有用。还可以考虑 Flask。
  • 您到底想要构建什么?仅仅因为你想要的数据存储而选择一个框架是很愚蠢的,因为可能还有其他更重要的因素。
  • 我想你不打算使用 ORM 或模板引擎,你不应该使用 Django。 Flask 听起来确实是个不错的选择。
  • @JonathanVanasco 我不接受用户的太多输入,所以表单处理不是一个大需求
  • 你能描述一下其他的吗? Django 为您提供了很多“魔法”——管理、orm、路由以及自动生成的幕后东西。 IMO,这对于某些项目来说非常棒,而对于其他你开始“对抗”框架的项目来说则是一场噩梦。 Pyramid 和 Flask 正好相反。您应该评估每个框架的优点和缺点,看看哪个最适合您的短期和长期应用目标。

标签: python django mongodb pyramid


【解决方案1】:

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

优点:

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

缺点:

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

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

【讨论】:

  • 你试过 Flask 吗?因为这里有人推荐 Flask,所以我也读到了 Flask。看起来 Pyramid 和 Flask 都遵循类似的即插即用理念。
  • 我还没有研究过一个使用 Flask 的小型测试应用程序。我的理解是,像 Flask 和 Bottle 这样的微框架专注于较小的 Web 应用程序,并且随着应用程序变得更大和更复杂而变得笨拙:pyramid.readthedocs.org/en/1.0-branch/…。此外,还有一个与 Chris McDonough 合作的新视频,深入探讨了 django 和金字塔 youtu.be/eN7h6ZbzMy0 之间的区别。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    还可以观看此视频: https://www.10gen.com/presentations/mongosf-2011/mongodb-with-python-pylons-pyramid

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-19
      • 2014-12-26
      • 2019-05-22
      • 2014-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-15
      相关资源
      最近更新 更多