2012-02-12 40 views
2

我正在尋找將Django項目遷移到Google App Engine並使用Google數據存儲區的指南。我發現的大多數指南都使用Django-nonrel鏈接到Django-Appengine(但我想使用GAE的本機支持)。如何將Django項目遷移到Google App Engine

通過GAE getting started guide去,它說:

谷歌App Engine支持寫的講CGI純Python任何框架(以及使用CGI適配器,任何符合WSGI的框架),包括Django的,CherryPy的,主塔, web.py和web2py。 您可以將您選擇的框架與您的應用程序代碼捆綁在一起,方法是將其代碼複製到您的應用程序目錄中。

我知道我不能在這種情況下使用Django的某些功能(主要是管理功能),並且還需要重新構建模型。

從其他閱讀中,我還發現最新的GAE SDK現在包含Python 2.5中的Django 1.3。

我試圖將我的Django應用程序中的所有文件放到GAE項目中,但是無法一起工作。

請提供一些基本指南,我可以將我的Django項目遷移到Google App Engine的代碼。

謝謝。

回答

1

如果你已經有一個Django應用程序,你可能需要檢查this。您不會使用App Engine的數據存儲,但Google Cloud SQL可能會滿足您的需求。

+0

Google Cloud SQL遷移指南相當不錯。 [在此頁](https://developers.google.com/cloud-sql/docs/django)「將您的Django項目移植到App Engine」部分提供了完整的詳細信息。 – Pratyush 2012-02-17 07:20:42

2

我已經使用了django-nonrel,它的行爲非常像django,只不過JOINs的操作會返回錯誤。我基本上通過避免ManyToMany字段來解決這個問題,並且基本上用中間表手動構建該功能。

到目前爲止,我遇到了Django-Nonrel的兩個問題: 1.無法訪問可以在事務中運行的祖先查詢。雖然有這個功能的掛起請求。 2.您不能指定未編入索引的字段。這可能會顯着增加您的寫入成本。我有一個想法來解決這個問題,但我還沒有這樣做。
(編輯:你可以指定沒有索引的字段,並且我已經驗證了這個效果很好)。 2(新)。谷歌推出了一個名爲ndb的新數據庫後端,它自動緩存和批量處理,這對於django-nonrel來說是不可用的。

如果您決定不使用django-nonrel,主要區別在於Django模型不能在App Engine下運行。您必須重寫模型才能從App Engine的db.Model繼承。您使用Django的ModelForm的表單需要繼承自google.appengine.ext.db.djangoforms。一旦你使用App Engine,如果你把你的應用程序帶到別的地方,你必須返回Django。

2

對於現有的Django應用程序,使用django-nonrel是最簡單的方法;它非常受歡迎,所以你應該能夠找到幫助你快速得到的具體錯誤。

另一種方法寫在這篇文章中:http://code.google.com/appengine/articles/pure_django.html - 另一種方式,採用一個App Engine應用程序,該應用程序使用Django作爲調度,模板和表單,但不適用於模型,並描述如何使其運行在本地Django環境中。也許你可以從中爲你的情況收集一些有用的提示。

+1

鏈接已死亡。 – 2016-04-30 14:53:10

相關問題