TurboGears

TurboGearsは、Pythonで記述されたWebアプリケーションフレームワークであり、その設計はモデル・ビュー・コントローラ(MVC)アーキテクチャに基づいています。このフレームワークは、MochiKit、SQLObject、CherryPy、Kidといった様々な基盤コンポーネントの上に構築されており、Pythonを用いたWebアプリケーション開発をより簡単かつメンテナンスしやすいものにすることを目的としています。

概要



TurboGearsは、2005年にKevin Dangoorによって、まだリリースされていないZesty Newsという製品の基盤フレームワークとして誕生しました。2008年2月時点では、メーリングリストに3,000人以上のメンバーを抱え、活発なコミュニティを形成しています。2006年にはPrentice Hallから書籍が出版され、多くのオープンソースおよびプロプライエタリのTurboGearsアプリケーションが実際に運用されています。2008年のPyConでは、TurboGears 2のプレビューリリースが期待されていました。

TurboGears の構成要素



TurboGearsは、以下の主要なコンポーネントで構成されています。

SQLObject: モデル層として機能し、データベースや多様な既存のデータベースサーバーとのインターフェースを可能にするデータバックエンドです。
Kid: ビュー層として使用されるXHTMLテンプレートエンジンです。すべてのテンプレートは有効なXHTMLまたはXMLファイルであり、検証や設計が容易なシンプルなXHTMLファイルとして扱えます。また、XML形式でPythonコードを埋め込む機能も提供します。
CherryPy: コントローラ層として動作し、テンプレートにデータを返すイベントハンドラを記述することでWebアプリケーションをプログラム可能にするミドルウェアです。同じデータをデータストリームとしてAjax的に取得することも可能です。
MochiKit: TurboGearsに付属するJavaScriptライブラリで、JavaScriptプログラミングをよりPythonのように扱えるようにします。データストリームを非同期に取得するインターフェースを提供し、主にAjax機能の実装に使用されます。

また、Kid以外のテンプレートエンジンもプラグインシステムを介して利用可能です。Cheetah、Django、Genshi、Jinja用のプラグインが提供されており、同一アプリケーション内で複数のテンプレートエンジンを併用することも可能です。

TurboGears の特徴



2007年1月には、プロジェクトリーダーであったKevin Dangoorが引退し、現在ではAlberto Valverdeが後継者としてプロジェクトを率いています。

TurboGears 2.0の開発が進められており、このバージョンではSQLObjectがSQLAlchemyに、KidがGenshiに置き換えられる予定です。これらのコンポーネントはソフトウェアの他の部分と密接に結びついているため、特にデータベースのフロントエンドである「Catwalk」に関して、既存のコードベースの多くを書き直す必要がありました。

2007年6月には、TurboGearsコミュニティが、TurboGears APIをPylonsで使用されているコンポーネントとプロトコル上に移植する実験を開始しました。この動きから、将来的に二つのフレームワークが統合される可能性も示唆されています。

関連書籍



Ramm, M (2006年11月7日). Rapid Web Applications with TurboGears, Prentice Hall. ISBN 0132433885

参照



自由ソフトウェア
Pythonを使っている製品あるいはソフトウェアの一覧

外部リンク



公式ウェブサイト
TurboGears Blogs
TurboGears google group
TurboGears screencasts and related videos
TurboGears from start to finish

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。