もっと知りたいPython

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

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について紹介したいと思います。

おすすめ記事

記事・ニュース一覧

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy