Google App Engine で 1.0以上のバージョンのDjangoを使う

先週に投稿したエントリで、Google App EngineではDjango0.96しか使えないようなことを書いたのですが、ちゃんと調べてみると、現在のGoogle App EngineではDjangoの1.1および1.0.2のバージョンも使用できることがわかりました。

英語のドキュメントにしか載っていなかったので気づきませんでした。失礼しました。

というわけで、Google App EngineDjango 1.1 を使う方法を記録しておきます。

まず、現状のGoogle App Engine SDKには Django 0.96 しか含まれていないので、ローカルで開発するためにはDjangoのサイトから1.1もしくは1.0.2のバージョンをダウンロードしてインストールしておく必要があります。なお、実際のクラウド上の実行環境にはDjango 1.1 と 1.0.2 が存在していますので、Djangoのライブラリをプロジェクトの中に含める必要はありません。

Django 1.1 をダウンロードして解答し、以下のコマンドを実行したらインストール完了です。ちなみに、古いバージョンのDjangoがローカルにある場合は、新しいバージョンをインストールする前に古いバージョンをアンインストールしておく必要があります。setup.py install コマンドでインストールしていた場合は、Pythonがインストールされているフォルダにあるsite-packagesからdjangoフォルダを削除することでアンインストールできます。詳細は、Djangoのページを確認してください。

# python setup.py install

こうして準備が整ったら、HTTPリクエストを処理するPythonスクリプトの一番最初に以下の内容を加えます。

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
from google.appengine.dist import use_library
use_library('django', '1.1')

これで、Django 1.1が使えるようになります。

試しに、前回やってみた辞書の内容を一覧表示するTemplateを以下のように書き換えてみると、正常に動作しました。

<table border="1">
    <tr><th>Parameter</th><th>Value</th></tr>
{% for key, value in my_dic.items %}
  <tr>
    <td>{{ key }}</td>
    <td>{{ value }}</td>
  </tr>
{% endfor %}
</table>
{% endblock %}

かなり見やすくなりましたね。

ところで、早いうちに以下のサイトを改良していきたいと思っていますが、なかなか仕事が忙しくて着手できません。


また、これとは別に、日々の雑感を書きとめるためのブログも開設しました。こちらは、エントリを作成するのにほとんど時間が必要ないので、継続的にエントリを投稿できそうです。


まぁ、どちらもあまり慌てずに、ぼちぼち進めていこうと思います。