3

我一个月前开始使用 GAE,并通过 Flask 在 GAE 上成功部署了我们当前的启动。它工作得非常好。现在对 GAE 非常感兴趣,我正在考虑将我的几个旧 Django 应用程序也移植到 GAE 上。

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

谷歌官方页面推荐使用django-nonrel,它本身已经停止使用。

GAE 上似乎还不支持 Django 1.5.1,我也不清楚如何在 GAE 上使用 Django 1.4.3。

我还发现了这个使用 Django 和 Google Cloud(云上的 Mysql)而不是高复制数据存储的最新解决方案。不确定这是否是一个好方法,因为它仍然是实验性的,并且将来会发生“重大变化”。(与高复制数据存储不同,它似乎也不包括任何免费层)

我期待 Django——也许是最大的 Python Web 框架——有更好的文档或教程来介绍如何在 GAE 上部署它。所以我想知道在 GAE 上坚持使用 Django 是否值得。

如果我打算手动制作自己的模型并通过使用来调整视图中的查询ndb,我也可以坚持使用flask + Jinja2,我为什么要使用Django,我什至不能再使用它的ORM了?还是我忽略了什么?

谢谢,

4

2 回答 2

3

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

我相信它至少已更新到 Django 1.5,但我个人仍在运行 1.4。文档非常缺乏。你必须从邮件列表中找出合适的分支来获得对最新 django 版本的支持。但是,它就在那里并且正在工作。

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

Django-nonrel 可以利用 HRD,但是,许多预期 SQL 行为的应用程序需要大量重写以正确支持 HRD 行为。

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

于 2013-07-01T17:08:38.487 回答
3

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

至于 Cloud SQL,App Engine 文档中有一个专门的页面,详细解释了如何启动和运行它。确实,Cloud SQL API 本身仍处于“实验”状态,但这正是 Google 所做的。App Engine 本身去年才走出“实验性”阶段。

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

于 2013-07-01T15:43:38.277 回答