在App Engine上運行Django App有多大的痛苦?另外,Datastore是否像Django一樣工作?Google App Engine上的Django
回答
我花了一些時間,試圖回答同樣的問題......在我看來,最困難轉移到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文檔!
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的應用程序並將其用於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後端的路線圖,但它可能不會發生一段時間。
只需Yesterday (depending on your time zone), Google released a new SDK用於Appengine上的Python,支持django 1.0開箱即用。
31.01.2012,Google released App Engine 1.6.2支持Django開箱即用。
您需要使用django-nonrel(source)。
你仍然會發現問題負載:不支持
- Many2Many關係
- 虛假連接的查詢
- App Engine不容許與插座或C依賴任何蟒蛇LIB的增加數(哨兵,lxml ...)
您可以嘗試儘早訪問CloudSQL。
否則你不約束使用App Engine,您可以考慮使用:
更便宜,更靈活地支持要求的文件,如畫中畫。
谷歌已經推出了他們的雲SQL存儲。這實際上是雲5.5中的MySQL 5.5。 IMO是將Django應用程序遷移到雲中的一種非常好的方式。他們有一個免費試用到2013年6月1日。
如果您需要一些提示如何設置您的Django項目Appengine和雲SQL我寫了tutorial for that。
- 1. Google App Engine上的Django + Adsense
- 2. Google App Engine或Django?
- 3. Google App Engine上的Django的FileField(或ImageField)
- 4. Django FileField,Google App Engine上的ImageField
- 5. Django-nonrel≤1.3和Google App Engine上的Memcache
- 6. 在Google App Engine上使用燒杯(Django)
- 7. 在Google App Engine上使用Django框架
- 8. 在Google App Engine上部署Django項目
- 9. 在Google App Engine上爲DataStore設置Django
- 10. 在Google App Engine API上創建Django-nonrel
- 11. Google App Engine,Django,CloudSQL和Images
- 12. Google App Engine和django-nonrel
- 13. Google App Engine與Django 1.0.2
- 14. Django替換Google App Engine(Python)
- 15. Facebook,Django和Google App Engine
- 16. Google App Engine和Django支持
- 17. Google App域上的Google App Engine
- 18. Google App Engine + Google Cloud Storage + Sqlite3 + Django/Python
- 19. Django/Django nonrel + Google App Engine +教程
- 20. Windows上的Google App Engine SDK?
- 21. Google App Engine上的PeeWee + SQLite3
- 22. Google App Engine上的PHP
- 23. Google App Engine上的UncaughtExceptionHandler Java
- 24. Google App Engine上的JDO UnsupportedDatastoreFeatureException
- 25. Google App Engine上的ServletContext
- 26. Google App Engine上的NoClassDefFoundError
- 27. Google App Engine上的Retrolambda
- 28. Google App Engine上的Lua
- 29. Google App Engine上的web.py
- 30. Google App Engine上的Imaplib Python
我發現應用程序引擎修補程序是PIA。它總是尋找一些奇怪的python模塊,通常會返回更奇怪的錯誤,並且功能與django runserver完全不同。 – drozzy 2009-12-02 13:59:40
這個補丁是否更好,Django-Nonrel? – 2011-02-27 20:16:45
注意:應用程序引擎修補程序已過時並已被放棄。不要使用它。 – dfrankow 2012-08-12 19:10:05