中山 康弘(なかやま やすひろ)
株式会社DTS所属
本原稿のサンプルアプリケーション・ソースコード一式をこちらからダウンロードできます。

 今回はPythonの代表的なWebアプリケーションフレームワークであるDjangoを紹介しましょう。

 DjangoはPythonを代表するフルスタックなフレームワークで,独自のテンプレートエンジン,O/Rマッパー等を備えています。DjangoはGoogleAppEngineのSDKにも含まれています。

 前回の記事ではGoogleAppEngineでDjangoのテンプレートを利用する例を紹介しました。DRY(Don't Repeat Yourself),テストサーバーを利用した素早い開発,正規表現を用いたURLディスパッチ,再利用性の高いコンポーネントといった特徴を持ちます。これらの特徴はRubyのフレームワークであるRuby on Railsと似ているところがあります。

 昨今,Railsの台頭により国産のスクリプト言語Rubyが人気を集めていますが,Pythonは可読性が特に高く,未経験者でも習得するのが比較的容易なのが特徴です。Pythonは構文の見た目と意味に関係があり,熟練者ほど読みやすいコードを書くため,書き手によってコードにバラつきが出ない傾向があります。このようなお堅い特徴を持つにもかかわらず,Pythonは柔軟でパワフルな表現が可能であり,グルー言語としても機能します。

 また,Djangoフレームワークはその高速な動作に定評があります。memcachedを標準で搭載しており,大規模サイトでのDjangoによる運用実績も豊富にあることから,PVの多いサイトの構築にも威力を発揮します。パフォーマンス面で何かと問題の出がちなRailsアプリケーションと比較しても,性能面で優位となる可能性があります。

バージョン1.0が9月にリリース

 長らくバージョン0.96のまま開発中だったDjangoフレームワークですが,1年以上の歳月を経て2008年9月3日に初のメジャーバージョンである1.0としてリリースされました。じっくり開発されただけあってDjango 1.0のAPIは安定しており,今後のバージョンでも少ない変更で動作すると言われています。

 また1.0のリリースに際してはドキュメント・リファクタリングも精力的におこなわれ,4万行に及ぶドキュメントが付属していることも特徴として挙げられます。本家のドキュメントは英語ですが,日本Djangoユーザ会の有志によって和訳も進められています。

Djangoの環境を用意する

 それでは実際にDjangoフレームワークをインストールし,アプリケーションを作成しながら,その過程で概略を説明していきましょう。なお今回の記事とアプリケーションはDebian GNU/Linuxで作成しましたが,動作検証は以下の環境すべてでおこなっています。

・Ubuntu 8.04 LTS
・Debian GNU/Linux 5.0
・Mac OS X 10.5 Leopard

※ いずれも Python 2.5.2 (GoogleAppEngineと同じバージョン) を使用

Python開発環境のインストール

 Linuxの場合,パッケージ管理システム等を利用してインストールをします。Ubuntu,Debian GNU/Linuxの場合は以下の通りaptitudeコマンドを利用します。

sudo aptitude install python-dev python-doc python-docutils python-setuptools python-profiler python-notify readline-common ipython python-mysqldb

 Macの場合は,サードパーティー製のパッケージ管理ツールMacPortsを利用すると良いでしょう。MacPortsのインストールに関しては,以下の情報などを参考にしてください。

 ここではMacPortsのインストールは完了しているものとします。

sudo port -d install python25
sudo ln -s /opt/local/bin/python2.5 /usr/local/bin/python
sudo port -d install py25-hashlib
sudo port -d install py25-zlib
sudo port -d install py25-setuptools
sudo ln -s /opt/local/bin/easy_install-2.5 /usr/local/bin/easy_install
sudo port -d install py25-readline
sudo port -d install py25-mysql

 PATHを設定して,/usr/local/binを/usr/binより優先するようにしてください。