MongoDB用作数据库时要使用哪个PythonWeb框架(Django或Djangonorel或pyramid)

2024-04-28 05:37:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用MongoDB作为我的主要(也是目前唯一的)数据库,由于google和它提供的链接,我混淆了Django和Pyramid。

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

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

或者我应该使用django forkdjango-noreldjango mongodb engine(它们并没有被积极维护),或者我应该使用Pyramid,因为我计划使用jinja2作为我的模板层,这样django的两部分对我来说就没用了。

在将这些电池从django中移除之后,它是否仍然是一个面向有截止日期的人的框架?

建议?


Tags: django框架pyramidweb数据库链接mongomongodb
3条回答

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

Flask有几个MongoDB扩展,有助于将MongoDB集成到框架中,但我也强烈建议使用mongoengineORM。mongoengine的一位工作人员发布了烧瓶集成的扩展名Flask-MongoEngine

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

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

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

优点:

  • 金字塔是非常轻的重量为一个完整的堆栈框架。引擎盖下面有少量的“魔法”。我能把我的头缠在所有的碎片上。
  • 它不像Django那样固执己见。你可以插入和播放任何模板引擎或数据库,你需要相对容易。
  • 我对金字塔与其他全堆栈框架之间的性能基准印象深刻。
  • 100%代码覆盖和“只为你吃的付钱”的塔架/金字塔文化对我自己的开发风格很有吸引力。

缺点:

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

至于在MongoDB中使用ORM,我建议您首先尝试不使用ORM进行构建。在尝试了一些mongodb ORMs之后,我最终使用Colander或Validictory返回到普通的pymongo进行验证。Pymongo已经很像ORM了,速度很快,而且很灵活。我觉得额外的抽象层剥夺了这种灵活性,导致我编写的代码比需要的多。

相关问题 更多 >