Google App Engine で Django 1.0 を動かす
このブログは 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.newforms
を django.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 それぞれのバージョンは以下の通り。
- Django 1.0 (revision 9109)
- Google App Engine SDK 1.1.4
そういえば、Google App Engine は SDK 1.1.3 から zipserve という新しいモジュールが追加されたり、と徐々に機能も増えてるので、このへんも使っていきたい。