Google App Engine上的Django

时间:2009-06-18 08:59:52

标签: django google-app-engine

在App Engine上运行Django App有多痛苦?此外,数据存储区是否与Django一样正常工作?

7 个答案:

答案 0 :(得分:13)

我花了一些时间试图回答同样的问题......在我看来,转移到GAE最困难的事情是 django的模型 ...在某种意义上它们需要进行各种修改并重新思考,主要是因为GAE的后端不是标准的关系数据库,而是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文档可以帮助你浏览一下!

答案 1 :(得分:12)

仅适用于Appengine上的Python Yesterday (depending on your time zone), Google released a new SDK,它支持开箱即用的django 1.0。

答案 2 :(得分:6)

您需要使用django-nonrelsource)。

您仍会发现很多问题:

  • 许多2关系不受支持
  • 虚假加入会增加查询次数
  • App Engine不允许任何带有套接字或C依赖项的python库(sentry,lxml ...)

您可以尝试尽早访问CloudSQL

否则您不限制使用App Engine,您可以考虑使用:

支持需求文件(如pip。)更便宜,更具控制力。

答案 3 :(得分:3)

31.01.2012,Google released App Engine 1.6.2支持Django开箱即用。

答案 4 :(得分:1)

App Engine包含开箱即用的版本0.96的Django,但它已经完全瘫痪了。

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

答案 5 :(得分:0)

痛苦程度取决于您要重用的现有代码量。不幸的是,由于Datastore不支持SQL,您通常不能只使用任何django-pluggable应用程序并在GAE项目中使用它。

App-engine-patch http://code.google.com/p/app-engine-patch/在将标准应用程序(Sites,ContentTypes,Flatpages)带到GAE时,看起来领先于其他django助手。我已经在几个gae项目中使用了app-engine-patch,一旦你理解了如何将django-sql模型移植到django-gae模型并将sql转换为数据存储区查询,事情就可以很快完成 - 但总有一个学习曲线。

appengine-helper尝试通过提供模型来弥合数据存储空白,因此您不必更改模型超类,但我发现您最终必须更改ManyToMany关系和任何sql,所以优势最终变得微不足道。 ae-patch有一个试图提供ae-datastore后端的路线图,但它可能暂时不会发生。

答案 6 :(得分:0)

Google现在推出了他们的Cloud SQL存储。这实际上是云中的MySQL 5.5。 IMO这是将Django应用程序迁移到云中的一种非常好的方式。他们将在2013年6月1日之前免费试用。

如果您需要一些提示如何为Appengine和Cloud SQL设置Django项目,我写了tutorial for that