Google App Engine
SDK 1.2.3とDjango
最終更新日: 2010年2月18日

Google App EngineにはDjangoが含まれている。Django使いとしては非常にありがたいことではあるが、残念なことに含まれているDjangoのバージョンが古く(0.9.6)、実用を考慮して最新版(現時点では1.0.2))を利用したければ、app-engine-patchなどを利用するしかなかった。

しかし、SDKバージョン1.2.3からDjango 1.0.2が含まれるようになった(開発環境には含まれていない)。これにより、app-engine-patchなどがどのような位置づけになるのか、非常に気になっていた。そのあたりの話がわかるのが、こちら。app-engine-patchの開発者の方曰く、Google App Engineに含まれるDjango 1.0.2はGoogle App Engine向けに全くpatchがあたっていない役立たずなので、app-engine-patchを使う必要あるそうだ。

さらにapp-engine-patchのサイトには次のように書かれていた。

FAQ: Now that Django 1.0 is integrated with the latest App Engine release should I still use app-engine-patch? Yes! The Django 1.0 version that is integrated with App Engine does not run out-of-the-box! Basically, you only get the template system. You can't use django.forms, django.contrib.auth, django.contrib.admin, and so on. Also, load times shouldn't be faster because only a minor part of Django is pre-loaded into memory. You still have to load the rest which is what slows it down.

追記: どうやらapp-engine-patchは開発を止めてしまったようなので、このサイトはGoogle App Engine SDK 1.2.5からサポートされたDjango 1.1を利用するように修正した。この修正作業、思ったより楽で、実質settings.pyやメインとなるhandlerの書き換え程度で済んだ。