2009-06-18 183 views

回答

12

我花了一些时间,试图回答同样的问题......在我看来,最困难转移到GAE的事情是Django的模型 ...在这个意义上,他们需要进行各种修改和反思,主要是因为GAE的后端不是标准的关系数据库,而是谷歌的BigTable。我发现了一个很好的介绍这个位置:

http://www.youtube.com/watch?v=rRCx9e38yr8

不管怎么说,这是值得下载这些“补丁”之一,并与它去!

对我来说,最好的解决方案是'应用程序引擎修补程序'。我下载了示例项目,并立即开始工作! (请注意,您需要单独安装GAE的SDK)对我来说,杀手特性是这样的事实:django-admin和许多其他经典的django功能也已被移植!

http://code.google.com/p/app-engine-patch/

documentation仍然在我看来相当小的,但它足以让你去。它会帮助你浏览官方的GAE文档!

+1

我发现应用程序引擎修补程序是PIA。它总是寻找一些奇怪的python模块,通常会返回更奇怪的错误,并且功能与django runserver完全不同。 – drozzy 2009-12-02 13:59:40

+0

这个补丁是否更好,Django-Nonrel? – 2011-02-27 20:16:45

+1

注意:应用程序引擎修补程序已过时并已被放弃。不要使用它。 – dfrankow 2012-08-12 19:10:05

0

疼痛的程度取决于您希望重复使用多少现有代码。不幸的是,由于Datastore不支持SQL,你通常不能只使用任何可插入Django的应用程序并将其用于GAE项目。

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

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

6

您需要使用django-nonrelsource)。

你仍然会发现问题负载:不支持

  • Many2Many关系
  • 虚假连接的查询
  • App Engine不容许与插座或C依赖任何蟒蛇LIB的增加数(哨兵,lxml ...)

您可以尝试尽早访问CloudSQL

否则你不约束使用App Engine,您可以考虑使用:

更便宜,更灵活地支持要求的文件,如画中画。

0

谷歌已经推出了他们的云SQL存储。这实际上是云5.5中的MySQL 5.5。 IMO是将Django应用程序迁移到云中的一种非常好的方式。他们有一个免费试用到2013年6月1日。

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