【发布时间】:2010-11-03 22:32:43
【问题描述】:
在 App Engine 上运行 Django 应用程序有多痛苦?此外,Datastore 是否可以与 Django 一起使用?
【问题讨论】:
在 App Engine 上运行 Django 应用程序有多痛苦?此外,Datastore 是否可以与 Django 一起使用?
【问题讨论】:
我花了一些时间试图回答同样的问题...在我看来,转移到 GAE 最困难的是 django 的模型...从某种意义上说,它们需要进行各种修改又重新思考,主要是因为GAE的后端不是标准的关系型DB,而是google的BigTable。我在这里找到了一个很好的介绍:
http://www.youtube.com/watch?v=rRCx9e38yr8
无论如何,值得下载其中一个“补丁”并尝试一下!
对我来说,最好的解决方案是“app-engine-patch”。我下载了示例项目,它立即工作! (请注意,您需要单独安装 GAE 的 SDK)对我来说,一个杀手级功能是 django-admin 和许多其他经典 django 功能也已被移植!!!
http://code.google.com/p/app-engine-patch/
documentation 在我看来仍然很小,但足以让您继续前进。不过,它会帮助您浏览 GAE 官方文档!
【讨论】:
只需 Yesterday (depending on your time zone), Google released a new SDK 用于 Appengine 上的 Python,它支持开箱即用的 django 1.0。
【讨论】:
您需要使用django-nonrel (source)。
你仍然会发现很多问题:
您可以尝试提前访问CloudSQL。
否则你不限制使用App Engine,你可以考虑使用:
使用 pip 等支持需求文件更便宜、控制更多。
【讨论】:
31.01.2012, Google released App Engine 1.6.2 支持开箱即用的 Django。
【讨论】:
App Engine 包含开箱即用的 Django 0.96 版,但它相当残缺。
App Engine Helper 和 app-engine-patch 应该在一定程度上解决了这个问题,但我自己也没有尝试过。
http://code.google.com/appengine/articles/appengine_helper_for_django.html http://code.google.com/appengine/articles/app-engine-patch.html
【讨论】:
痛苦的程度取决于您想要重用多少现有代码。不幸的是,由于 Datastore 不支持 SQL,您通常不能只使用任何 django-pluggable 应用程序并在您的 GAE 项目中使用它。
App-engine-patch http://code.google.com/p/app-engine-patch/ 在将标准应用程序(站点、内容类型、平面页面)引入 GAE 方面似乎领先于其他 django 助手。我在几个 gae 项目中使用了 app-engine-patch,一旦你了解了如何将 django-sql 模型移植到 django-gae 模型并将 sql 转换为数据存储查询,事情就可以很快完成 - 但总有一个学习曲线。
appengine-helper 试图通过提供模型来弥合数据存储区的差距,这样您就不必更改模型超类,但我发现您最终不得不更改多对多关系和任何 sql,所以优势最终变得最小。 ae-patch 有一个尝试提供 ae-datastore 后端的路线图,但它可能暂时不会发生。
【讨论】:
Google 现已推出 Cloud SQL 存储。那实际上是云中的 MySQL 5.5。 IMO 这是将您的 Django 应用程序迁移到云中的一种非常好的方法。免费试用期至 2013 年 6 月 1 日。
如果您需要一些技巧来为 Appengine 和 Cloud SQL 设置您的 Django 项目,我已经写了一个tutorial for that。
【讨论】: