我正在使用MongoDB作为我的主要(也是目前唯一的)数据库,由于google和它提供的链接,我混淆了Django和Pyramid。
我对python很熟悉,但从未用python做过web开发(我用PHP做过)。现在,因为我将使用Mongo,所以我不会使用Django ORM,这是否会剥夺人们与Django相关联的开发的便利性?
我是Django的新手(仅仅几个小时),所以我不确定ORM会影响框架的哪些部分。
或者我应该使用django forkdjango-norel和django mongodb engine(它们并没有被积极维护),或者我应该使用Pyramid,因为我计划使用jinja2作为我的模板层,这样django的两部分对我来说就没用了。
在将这些电池从django中移除之后,它是否仍然是一个面向有截止日期的人的框架?
建议?
我将提出一个尚未提及的替代方案: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应用程序。我最终选择了金字塔:
优点:
缺点:
至于在MongoDB中使用ORM,我建议您首先尝试不使用ORM进行构建。在尝试了一些mongodb ORMs之后,我最终使用Colander或Validictory返回到普通的pymongo进行验证。Pymongo已经很像ORM了,速度很快,而且很灵活。我觉得额外的抽象层剥夺了这种灵活性,导致我编写的代码比需要的多。
相关问题 更多 >
编程相关推荐