Djangoをインストールしよう!
さっそくDjangoをインストールしましょう。前回はPythonとMySQL、PythonでMySQLを利用するための mysql-pythonのインストールまで説明しましたのでその続きです。Djangoのオフィシャルサイトは http://djangoproject.com/ ですが、日本語のコミュニティサイトである http://djangoproject.jp/ が非常に充実しているので、普段はこちらをチェックしてもよいでしょう。こちらから安定最新版(執筆時の最新版は1.2.1)をダウンロードしてインストールします。
$ tar zxf Django-1.2.1.tar.gz
$ cd Django-1.2.1
$ python setup.py build
$ sudo python setup.py install
これでDjangoのインストールは完了です。
さて、WAFの説明では「このWAFでのMVCはこうなっている」ということが多いですが(ロジックをどこに置くかでMVCにStorageがついたりServiceがついたりもしますが)、Djangoは「MVT」という概念を提唱しています。
MVTというのは、Model、View、Templateのことです。MVCのControllerがどこかにいってしまいましたが、Django のMVTではViewが他のWAFのControllerの一部を請け負うと考えるのと、「URLconf」という部分にディスパッチャの機構が実装されていてController的に振る舞います。
URLconfはDjangoを使いやすくしている大きな要因のひとつです。普通こうするよね、という機能の組み合わせでできてしまう小さなWebアプリケーションを作るとき、WAFを使えば御仕着せの機能で足りるし、暗黙に処理されてコードを書く手間が省けたりしてうれしいですが、凝ったものを作ろうとすると、暗黙の処理がネックになってうまく作れないことがあります。暗黙の処理をオーバーライドしたりキャンセルできたりするWAFならまだいいのですが、WAF本体を書き換えたり、トリッキーな実装をしたりしないと、望みどおりに実装できないことがあります。
よくあるのがセッション管理です。WAFで標準的に用意されているセッション管理はよくできているのですが、特にモバイルアプリなどでちょっと凝った実装をしようとすると、たいがい標準の機能では不足します。TurboGearsやCatalystを触っていてもどかしい思いをしたのがURLとメソッドの関連付けルールを決めるディスパッチャ部分です。標準のルールでほとんどできるんだけど、どうしてもできないケースが出てくるのです。そういうとき、DjangoのURLconfはほぼ完全に自由自在にマッピングをできるので、使っていて気持ちがいいのです。