在App Engine上运行Django App有多痛苦?此外,数据存储区是否与Django一样正常工作?
答案 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-nonrel(source)。
您仍会发现很多问题:
您可以尝试尽早访问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。