Google App Engine で Django 1.0 を動かす

2008/10/02 10:26am

このブログは Google App Engine と Django で動かしているのだが、いままで Django はすこし古い開発版を使っていた。

しかし、先頃めでたく Django 1.0 もリリースされたことだし、このブログも最新の開発版にアップデートすることにした。とりあえず、すこしソースコードを修正するだけで、動くだけは動いたので、変更点を残しておく。もっとも、このブログは機能がすくない分、Django に依存している箇所もすくないので、他のプログラムではこれ以上の修正が必要かもしれない。

また、Django を Google App Engine 上で動かす方法については、もともと、Running Django on Google App Engine を参考にしている。そのため、他の手段、たとえば Google App Engine Helper for Django を使っている人にとっては、この記事は役に立たないだろう。

django.dispatch.dispatcher.connect

django.dispatch.dispatcher.connect, django.dispatch.dispatcher.disconnect は使えなくなっていた。

--- ../metareal.django.0.9/main.py    2008-06-06 17:33:42.000000000 +0900
+++ ./main.py 2008-10-02 21:14:00.000000000 +0900
@@ -53,20 +53,17 @@

 import django.core.handlers.wsgi
 import django.core.signals
-import django.db
-import django.dispatch.dispatcher
+from django.db import _rollback_on_exception
+from django.core import signals

 def log_exception(*args, **kwds):
     logging.exception('Exception in request:')

 # Log errors.
-django.dispatch.dispatcher.connect(
-    log_exception, django.core.signals.got_request_exception)
+signals.got_request_exception.connect(log_exception)

 # Unregister the rollback event handler.
-django.dispatch.dispatcher.disconnect(
-    django.db._rollback_on_exception,
-    django.core.signals.got_request_exception)
+signals.got_request_exception.disconnect(_rollback_on_exception)

newforms

django.newformsdjango.forms に置き換える。

--- ../metareal.django.0.9/weblog/forms.py    2008-05-16 15:08:47.000000000 +0900
+++ ./weblog/forms.py 2008-10-02 21:15:45.000000000 +0900
@@ -1,4 +1,4 @@
-from django import newforms as forms
+from django import forms
 from django.utils.translation import ugettext_lazy

使用している Django および Google App Engine SDK それぞれのバージョンは以下の通り。

そういえば、Google App Engine は SDK 1.1.3 から zipserve という新しいモジュールが追加されたり、と徐々に機能も増えてるので、このへんも使っていきたい。

参考