もっと知りたいPython

第3回 WebフレームワークTurboGears, Django, Pylons

この記事を読むのに必要な時間:およそ 1.5 分

LLベースのWeb開発フレームワークは,Ruby on Railsをきっかけに大きく認知を広げました。PythonとWeb開発の歴史はとても長く,実に成熟しています。前回紹介したPloneのベースになっているZopeは著名なLLベースのWebフレームワークのひとつです。当時Boboと呼ばれていたZopeの開発が始まったのは1996年のことでした。10年以上前に,すでにオブジェクト指向Web開発を実践していたPythonistaの有能さには本当にびっくりさせられます。

Python製Webフレームワークの新時代

Zope以外にも,Pythonには多くのWeb開発用のフレームワークが存在します。どのフレームワークも素晴らしいのですが,Zopeの存在が大きすぎたせいか,多くの開発者の支持を得ることはできなかったようです。

Zopeを筆頭にいくつものフレームワークが群雄割拠していた状況も,数年前から変わりつつあります。いくつかのフレームワークが,Zopeの人気をしのぐ勢いで開発者の注目を集め始めたのです。今回は,人気のあるPython製フレームワークのうち3つを取り上げ,紹介したいと思います。

どのフレームワークも,Webアプリケーションを作るために必要な機能を備えたフルスタックのフレームワークです。インストールやセットアップが簡単なのも特徴です。Pythonの基本を知った方なら,気軽に試せます。

TurboGears

TurboGearsは2005年から開発が始まりました。AjaxやWebサービスといった今日的なWeb技術を手軽に体験できる意欲的なフレームワークです。「メガフレームワーク」を標榜し,実績のある既存のライブラリをフレームワークを構成する部品として活用しています。TurboGearsは,ライブラリ間の結びつきを強める役割を主に担っています。また,O/Rマッパー,テンプレートエンジンなど一部の部品は置き換え可能で,必要に応じて部品を取り替えることができます。このような形式のWebフレームワークが現れることを見ても,Pythonの言語としての層の厚さが見て取れます。

TurboGearsのノリの良さ,開発効率の高さを実感するには,20分で作るWiki(20 Minute Wiki)という動画を見ると良いでしょう。また,日本語の情報が必要な方は,技術評論社から出版されている拙著「TurboGears×Python」や,共著「最新Pythonエクスプローラ」をぜひお読みください。

Django

Djangoはもともとニュースサイトを運営するために作成された内製のWebフレームワークでした。TurboGearsと違い,多くの部分がフロムスクラッチで作られています。2005年にオープンソース化され,完成度の高さなどから注目を集めるようになりました。ニュースサイトという高負荷な動的生成サイトをドライブしているフレームワークである,ということも注目を集めた理由のひとつのようです。Java製のSNSをDjangoでリプレースしたら,サーバ機が4分の1で済んだという事例があることからも,高負荷対応というTurboGearsとは少々異なったDjangoの特徴と指向性が見て取れます。

Djangoのもう1つの特徴は,CRUDフォーム生成の手軽さです。データベースとの接続を制御するO/Rマッパーの定義にCRUDフォームを制御するための情報を埋め込むだけで,adminと呼ばれる綺麗なデータ編集用のフォームがほぼ自動で生成できるのです。Djangoのコア開発陣はRailsの開発陣とともに開発イベントを行うくらい仲が良いのですが,Railsを使っている開発者は,DjangoのCRUD自動生成を決まって羨むようです。

ただし,CRUDフォームが自動で生成される反面,カスタマイズ性が低いのも事実のようです。今後newformsという,より柔軟なフォーム生成の仕組を取り込む計画のようです。

日本語の情報が豊富なのもDjangoの大きな特徴です。ドキュメントはほとんど日本語訳されていますし,国内のコミュニティが定期的に勉強会を開催しています。

Pylons

Pylonsは今回紹介するフレームワークの中では一番新しく,2006年から開発が始まりました。TurboGearsと同様に,既存のライブラリを組み合わせて,結びつきを強める形で形成されているフレームワークです。TurboGearsよりも,さらに先進的な機能を備えています。

Pylonsの特徴はフレームワークの「柔軟性」です。TurboGearsも複数のテンプレートエンジンなどを切り替えて利用できますが,TurboGearsはMVCのC(コントローラ)CherryPyというWebアプリケーションサーバに依存しているため,この部分の柔軟性に欠けます。Pylonsではリクエストディスパッチャが置き換え可能で,コントローラに相当する部分も置き換えられます。

また,Pylonsは最も早くWSGIに対応したフレームワークでもあります。WSGIとは,WebサーバとPython製のアプリケーションの通信方法の標準を定めた仕様です。WSGIはPythonのWeb開発でトレンドになる仕様です。

フレキシビリティがあり,PythonのWeb開発標準仕様をいち早く取り入れたPylonsは一部で最も将来性のあるフレームワークと目されています。TurboGearsの次期バージョンでは,Pylonsとの統合を目指すことがアナウンスされています。いち早くPythonのWeb開発の先端を覗いてみたい方は,ぜひPylonsを使ってみてください。

次回は,2007年8月末に最初のαバージョンがリリースされたPythonの次期バージョン3.0について紹介したいと思います。

著者プロフィール

柴田淳(しばたあつし)

Webcore株式会社代表取締役。Python,Ploneを使ったCMS/システム構築やコンサルティングが主な業務となっています。「みんなのPython」「TurboGears×Python」などの著書があります。日本Pythonユーザ会のほか,日本PostgreSQLユーザ会でも活動。

URLhttp://coreblog.org/ats/

著書

コメント

コメントの記入