2012-01-30 33 views

回答

3

更新:看来Web app2是新项目的最容易的选择。

guest article表明

“的App Engine也确实会带来一些Django的支持,但这主要是 只模板和看法。”

非rel仍然看起来是你最好的选择。虽然我会告诫你,根据their blog,进一步的开发和/或维护可能不会发生。

+0

我还没有看到任何人强烈赞同此产品 - 我想知道如果Django可能不是GAE应用程序的最佳选择。 – 2012-01-30 15:00:53

+1

我同意。 App Engine团队[推荐](http://code.google.com/appengine/articles/appengine_helper_for_django.html),它自2010年11月起用于现有的Django应用程序。事情发生了变化。 – kush 2012-01-30 15:35:34

+0

我知道SO在“哪个是最好的”类型的问题上皱眉,但你会不会提名你的GAE应用程序的推荐应用程序框架? (当然在Python中)。 – 2012-01-30 15:43:29

3

普通Django的模型没有支持GAE数据存储的后端。因此,您不能使用Django模型,因此也不能使用Django的模型表单。你需要做的是使用从GAE的python db.Model()派生的模型。您可以使用google.appengine.ext.db.djangoforms,而不是为表单使用Django的ModelForm类。请注意,这是特别为ModelForms,其他形式工作正常,因为他们没有绑定到数据库。

我可以想到使用Django-nonrel的两个很好的理由: 1a)您在Django上有一个现有项目。使用Django-nonrel将是最懒惰的方法。将模型重写为GAE的模型并不难,但这可能会造成很小的麻烦,特别是如果您使用了很多现有的Django组件,并且您必须通过所有这些组件来更新模型和表单。 2)你想对冲GAE的投注。使用Django-nonrel将允许您轻松切换到MongoDB,因为Django-nonrel具有正常运行的MongoDB后端。目前的Django-nonrel维护者似乎对MongoDB更感兴趣。

与Django-Nonrel一起工作之后,我至今遇到了一些原因,为什么它可能是一个不好的选择: 1)不支持祖先查询。尽管如此,还是有一个出色的拉取要求。但它不会与任何其他数据库后端兼容。 2)ndb出来了,似乎它会有更多的好处,可能不会在Django-nonrel上看到支持。

如果您确实使用GAE的本机数据库API,那么Django的主要优势在于表单验证。否则,webapp2 + jinja2 + gae db.Models()会为Django提供类似的功能。

+0

我发现这个答案比选择的更正确。它代表了我尝试(然后放弃)在appengine上的django的经验。如果你不喝酒的话,很难从appengine中获得任何好处。只是试图将它抽象出去而不会工作。 – 2012-08-13 03:19:11

相关问题