| 開発者 | Kevin Dangoor (オリジナル作成者)、Mark Ramm (2.0 リーダー)、Alessandro Molina (2.1+ リーダー)、他 |
|---|---|
| 初回リリース | 2005年9月 |
| 安定版リリース | 2.4.3 [1]
/ 2020年3月1日 |
| リポジトリ | TurboGears リポジトリ |
| 書かれた | パイソン |
| オペレーティング·システム | クロスプラットフォーム |
| タイプ | Web アプリケーション フレームワーク |
| ライセンス | MITライセンス、LGPL |
| Webサイト | 詳しくはこちら |
TurboGearsは、WebOb、 SQLAlchemy、Kajiki テンプレート言語、Repoze などの複数のWSGIコンポーネントで構成されるPython Web アプリケーション フレームワークです。
TurboGears は、StrutsやRuby on Railsによく似たモデル・ビュー・コントローラ(MVC) アーキテクチャに基づいて設計されており、Python での迅速な Web アプリケーション開発をより容易かつ保守しやすいものにするように設計されています。バージョン 2.3 以降、フレームワークは「最小モード」も提供しており、これにより、スタック全体が必要とされない、または望まれない環境での使用のためのマイクロフレームワークとして機能できます。
TurboGears コンポーネント
TurboGears は、多数の異なるライブラリとミドルウェアの上に構築されています。デフォルトのツールは 1.x、2.x、2.3+ シリーズ間で変更されていますが、多くの代替構成がサポートされているため、これらのコンポーネントのほとんどはいずれでも使用できます。開発者が操作する主なコンポーネントは次のとおりです。
TurboGears 2.x コンポーネント
- SQLAlchemy (モデル) - ユーザーのデータベースのテーブル構造と、それらをユーザーのコントローラーが対話できる Python オブジェクトにリンクする方法を定義します。
- Ming (モデル) - SQLAlchemy が MongoDB コレクションをユーザーのコントローラーが対話できる Python オブジェクトにリンクする方法を定義するのと同じように、MongoDB のデータ アクセス レイヤーを提供します。
- Kajiki (旧称Genshi ) ( View ) - ユーザーが生成する HTML または XHTML のテンプレートを定義します。ここで、ユーザーはクライアントが対話するフロントエンドを定義します。
- Repoze - Repoze.who はセキュリティ (識別と認証) を処理するために使用されます。ユーザーはコントローラに添付された述語に基づいて承認ルールを定義できます。フレームワークにはすでに組み込みの述語がいくつか用意されていますが、カスタム述語を作成することもできます。
- ToscaWidgets - フォームや複雑な GUI を作成するための主要なウィジェット ライブラリです。Tosca はデフォルトで単純な HTML フォームを生成しますが、より高度な JavaScript ウィジェットやツールキットに接続するためのミドルウェアとして使用することもできます。TurboGears 1.x とは異なり、優先/統合された JavaScript ライブラリはなくなりました。[2]
- Gearbox は、TurboGears がプロジェクトの管理、新規プロジェクトの作成、TurboGears アプリケーションの提供に使用するツールキットですが、ユーザーはApache、Nginx、またはその他のWSGI互換 Web サーバーに接続することもできます。
2.3 より前のバージョンでは以下も使用されます:
- Pylons (コントローラー) - このミドルウェアは、ユーザーのバックエンドロジックをすべて処理し、ユーザーの Web サーバーに接続して Web にデータを提供します。
- Paster は、 Gearbox の代わりに使用されるコマンド ツールキットおよび Web サーバーでした。
- Repoze.what - それぞれ認証を処理するために使用されます。Web に公開されるユーザーのコントローラーの要素を定義する場合、repoze.what 述語は、誰がどのような条件でそれらにアクセスできるかを定義します。
TurboGears 1.x コンポーネント
- SQLObject (モデル) - 多くのデータベース サーバー上の既存のデータとデータベースまたはインターフェイスを作成できるデータ バックエンド。
- SQLAlchemy は、TurboGears >= 1.1 でデフォルトになる予定です。
- Kid (View) - XHTML フロントエンド テンプレート エンジン。すべてのテンプレートは有効な XHTML または XML ファイルであり、通常はこれらのテンプレートを単純な XHTML ファイルとして開いてデザインを確認できるように作成されます。同時に、Python のスニペットを XML 風に埋め込む機能も提供されます。
- Genshi はKid の後継であり、TurboGears >= 1.1 のデフォルトのテンプレート エンジンとして Kid に取って代わります。Kid とほぼ 100% の構文互換性があります。
- CherryPy (コントローラー) - テンプレート (TurboGears の場合) にデータを返すイベント ハンドラーを記述することで、Web アプリケーションをプログラミングできるミドルウェア。同じデータをAjax形式でJSONデータ ストリームとして受信することもできます。
- MochiKit はTurboGears 1.x の推奨されるオプションの JavaScript ライブラリです。JavaScript でのプログラミングをより Python らしくするために設計されています。非同期で JSON データ ストリームを取得するためのインターフェイスを提供するため、主にAjax機能とウィジェットの実装に使用されます。
テンプレートプラグイン
Genshi以外のテンプレート言語は、ユーザーのアプリの設定ファイルを通じて使用できます。現在 2.1 でサポートされているプラグインは、Myghty、Jinja2、Mako、Cheetah、および Kajiki です。Genshi は実質的に同一であるため、Kid サポートは現在のところ計画されていません。このリストは将来のバージョンでも変更される可能性があります。
プロジェクトの歴史
TurboGears は元々、2005 年に Kevin Dangoor 氏によって、まだリリースされていなかった Zesty News 製品のフレームワークとして作成されました。[3] 2005 年 9 月末にオープンソースフレームワークとしてリリースされたとき、最初の 3 か月で30,000 回を超えるスクリーンキャストのダウンロードがありました。 [要出典]
2007 年 1 月、Kevin Dangoor がプロジェクト リーダーを退任し、Alberto Valverde が後任としてプロジェクトを管理しましたが、[4]その後、個人的な事情により辞任しました。Alberto は今でも ToscaWidgets プロジェクトを通じて TurboGears コミュニティに関わっています。TurboGears プロジェクトは現在、Mark Ramm (TurboGears 2 開発リーダー) と Florent Aide (Turbogears 1.x リリース マネージャー) のリーダーシップの下、約 6 人のコア開発者のグループによって共同で管理されています。
2007 年 6 月、コミュニティは TurboGears API をPylonsで使用されるコンポーネントとプロトコルの上に配置するための実験を開始し、2 つのフレームワークが最終的に統合されるのではないかとの憶測がありました。[5]しかし、公式の TurboGears 2 ドキュメントには、両方のプロジェクトの「異なるが互換性のある優先事項」 [6]のため、これは起こりそうにないと記載されています。Pylons は低レベルの拡張可能な設計に重点を置きたいと考えていましたが、TurboGears は完全でユーザーフレンドリーなパッケージを提供することに重点を置いていたため、この 2 つは Debian と Ubuntu が現在行っているのと同じように連携しています。新しい 2.x ブランチの最初の安定リリースは 2009 年 5 月に行われました。
2008 年秋現在、TurboGears には大規模で健全なコミュニティがあり、TurboGears メーリング リストには 3000 人以上のユーザーが登録されています。また、2006 年 11 月にはPrentice Hallから書籍が出版され、オープンソースおよびプロプライエタリの TurboGears アプリケーションが多数実用化されています。開発は緩やかながらも着実に進んでおり、 2008 年と 2009 年にGoogle Summer of Codeメンタリング組織としてプロジェクトが参加して成功したことで、新たな勢いが生まれました。レガシー サイトを 2.x に移行できるようにすることを目指した TurboGears 1.1 は、2009 年 10 月にリリースされました。書籍の新しい改訂版は、TurboGears 2 がもたらした変更に合わせて更新するために現在作成中です。
2010 年、プロジェクトはやや停滞しました。主任開発者が現実の問題で解雇されたのです。しかし、2011 年 1 月末までに、プロジェクトは再編成され、軌道に戻るための作業を開始しました。数か月かけてインフラストラクチャを整え、コーディングの問題に対処した後、TurboGears は新しいバージョン (2.0.4 および 2.1.2) をリリースすることができました。
2013 年、下位互換性を維持しながら、プロジェクトは Pylons コードベースから移行し、Python 3 をサポートし、スピードアップとインストール プロセスの簡素化を実現しました。これにより、2013 年 8 月にバージョン 2.3.0 がリリースされました。また、リリース サイクルが短縮され、約 3 か月ごとにメンテナンス リリースが行われることも発表されました。
TurboGearsの未来
TurboGears の開発は現在、主に新しい 2.x ブランチに重点が置かれており、バージョン 2.3 が Python 3 をサポートするメイン トラックとなっています。
1.x ブランチから 2.x ブランチへの移行パスは、1.1 および 1.5 リリースを通じて提供され、デフォルトの ORM およびテンプレート言語が 2.x シリーズで使用されるものと一致するように変更されました。TurboGears チームは、2.x が将来であり、1.x は既存のユーザーの利便性のために維持されているだけであることを新しいユーザーに対して明確にしました。
2011年、TurboGearsの主任開発者はPylonsプロジェクトと協議し、Repoze.BFGの開発者と力を合わせてPyramidという新しい統合プロジェクトを立ち上げることにした。この動きによって生じる下位互換性の問題と、TurboGearsが長期的に信頼できるプラットフォームであり続けることを保証するために、現在のチームは可能な限りPylonsプロジェクトと協力することを決定したが、TurboGearsのコアをPyramidに基づかせないことにした。[7]
2.3ブランチでは、将来の開発、Python 3のサポート、速度の改善が行われ、既存のアプリケーションとの下位互換性を保ちながらTurboGearsコアが完全に書き直されました。このリリース以降、TurboGearsはPylonsフレームワークに基づくのではなく、独自のコアを持っていました。[8]
2.3 シリーズでは、フレームワークはいわゆる「最小モード」を実験してきました。これにより、依存関係を数十から 3 に減らし、事実上マイクロフレームワークとして機能することができるようになり、TurboGears を Python フレームワークのバラの中で Flask と Django の間に位置付けています。TurboGears2 または tg.devtools パッケージが使用されているという事実に応じて、マイクロフレームワークからフルスタック フレームワークに拡張できることを目指しています。
バージョン 2.4 以降、フレームワークはモジュール コンポーネント ベースのアーキテクチャを採用しており、ユーザーは自由にコンポーネントを有効にしたり置き換えたりすることができます。そのため、TurboGears は、ユーザーのニーズに合わせて拡張できる Web フレームワークという使命を実際に果たしています。
参照
参考文献
- Ramm, M; Dangoor, K; Sayfan, G (2006 年 11 月 7 日)。Rapid Web Applications with TurboGears、Prentice Hall。ISBN 0-13-243388-5
注記
- ^ “リリース 2.4.3”. 2020年3月1日. 2020年3月2日閲覧。
- ^ TurboGears2 クックブック - フォームの作成と検証
- ^ Kevin Dangoor. 「TurboGearsの簡単な歴史」. blueskyonmars . 2021年9月6日閲覧。
- ^ 「TurboGears に新しいリーダーが誕生」 Kevin Dangoor. 2007-01-03 . 2007-04-12閲覧。
- ^ 「Pylons Merge」。2012年7月5日時点のオリジナルよりアーカイブ。2007年6月27日閲覧。
- ^ 「TurboGears 2 の新機能」 。2008年 9 月 16 日閲覧。
- ^ 「State of the Gears」。Michael Pedersen。2012年3月1日。 2013年3月18日閲覧。
- ^ 「TurboGears 2.3 不安定リリース」Alessandro Molina. 2013-01-23 . 2013-03-18閲覧。
外部リンク
- TurboGears ホームページ
