将GAango应用程序移植到GAE仍然是一种选择吗?

时间:2013-07-01 14:06:14

标签: django google-app-engine

我在一个月前开始使用GAE,并成功通过GAE上的Flask部署了我们当前的创业公司。它的效果非常好。现在我已经完全退出了GAE,我正在考虑在GAE上移植几个旧的Django应用程序。

令我惊讶的是,它的文档令人惊讶地不一致且部分矛盾。

官方google page建议使用django-nonrel,其本身已经disconstinued

Django 1.5.1似乎甚至还没有得到GAE的支持,我也不清楚如何在GAE上使用Django 1.4.3。

我还发现这个更近期的solution利用了Django和Google Cloud(云上的Mysql)而不是高复制数据存储。不确定这是否是一个好的方法,因为它仍然是实验性的,并且将来会受到“突破性的变化”。 (与高复制数据存储区不同,它似乎也不包含任何免费层)

我期待Django - 可能是最大的python web框架 - 有一个更好的文档或教程如何在GAE上部署它。所以我想知道它是否值得在GAE上坚持使用Django。

如果我打算手动制作我自己的模型并使用ndb在Views中调整我的查询,我还可以坚持使用flask + Jinja2,为什么我应该使用Django,我甚至不能使用它的ORM了吗?或者我忽略了什么?

谢谢,

2 个答案:

答案 0 :(得分:3)

在allbuttonspressed博客的链接上没有任何内容暗示它已经停止。相反,该页面说即使他们(作为原始维护者)退出项目,它也已被新的维护者接管。这就是开源项目中经常发生的事情。

对于Cloud SQL,App Engine文档中有一个dedicated page,详细说明了如何启动并运行它。事实上,Cloud SQL API本身仍然处于“实验”状态,但这也是Google所做的。 App Engine本身去年才出现“实验性”。

至于为什么你应该坚持使用Django,当然这取决于你,但上述两种解决方案都会为你提供Django表单,管理界面,模板和URL路由,以及部分或全部ORM语法。

答案 1 :(得分:3)

在维护django-nonrel方面还有一些工作,尽管Allbuttonspressed博客已经开始变得过时了。您可以在Google网上论坛的django-nonrel邮件列表中找到更多最新信息。

我相信它已经更新到至少Django 1.5,但我个人仍然在1.4上运行。文档非常缺乏。您必须从邮件列表中找出用于获取最新django版本支持的相应分支。然而,它在那里并且它正在发挥作用。

Django + CloudSQL可能是将应用程序移植到GAE的编码最少的路径。

Django-nonrel可以利用HRD,然而,许多编写的期望SQL行为的应用程序需要进行大量重写才能正确支持HRD行为。

举个例子,我试过在django-nonrel上运行django-registration。初看起来,似乎工作正常。但是在更深入的检查中,存在诸如能够向HRD上的多个用户注册相同电子邮件地址的问题。考虑到HRD不支持多对多关系以及稍微复杂的查询,您可能会发现其他应用程序存在类似问题,或者根本无法运行,