Pylonsは、
Python言語で記述されたオープンソースの
Webアプリケーションフレームワークです。その特徴は、再利用性を促進し、機能を各モジュールに分割するためにWSGI(Web Server Gateway Interface)標準を広く採用している点にあります。Pylonsは、
Djangoや
TurboGearsといった他の
Webアプリケーションフレームワークと比較して比較的新しく、特に
Ruby on Railsから強い影響を受けています。主要なコンポーネントであるRoutesとWebHelpersは、Railsの機能を
Pythonで再実装したものです。
構造と特徴
Pylonsは、他のプロジェクトで開発されたツールを積極的に活用し、ほぼ完成したスタックを提供することで知られています。これにより、
車輪の再発明を避けるというNIH(Not Invented Here)症候群に対する明確な姿勢を示しています。
インストールと設定
Pylonsの公式なインストール方法は、
Python CheeseShop経由で
EasyInstallを用いることです。これにより、必要なパッケージの依存関係も自動的に解決されます。PylonsとPasteを一緒にパッケージした配布版も存在しますが、公式版に比べて更新が遅れる傾向があります。また、.eggファイルを.zipファイルに変更し、展開することでもインストール可能です。
Pasteプロジェクトは、設定、テスト、および配置に使用されます。
INI構成フォーマットを採用しており、開発者は複数の「プロファイル」を使って、開発環境と製品環境で同じコードベースを動作させることができます。これにより、デバッガなどの複雑な部分を製品版のユーザーから隠蔽したまま開発を進めることが可能です。
URLディスパッチ
Pylonsでは、SelectorなどのWSGI互換のURLディスパッチャであればどれでも利用可能ですが、一般的には
Ruby on RailsのURLディスパッチ機構を
Pythonで再実装したRoutesが広く使用されています。
HTML生成
Routesの設定に基づきURLのマッピング機能を提供するWebHelpersも、Railsから影響を受けた機能の一つです。WebHelpersは、script.aculo.usやPrototypeライブラリを利用した
JavaScriptコードを生成するためのユーティリティ機能も提供します。また、HTMLフォームの検証と生成には、FormEncodeとFormBuildが使用され、Makoテンプレートエンジンもフォーム生成の一部に利用されます。
テンプレート
初期のPylonsではMyghtyがデフォルトのテンプレート言語でしたが、バージョン0.9.6からはMakoに置き換えられました。これらのテンプレート言語はどちらも、インクルード、継承、そして
Pythonコードの埋め込みをサポートするテキストベースのものです。Pylonsの柔軟なレイヤ構造により、他のテンプレート言語も利用可能です。例えば、XMLベースのGenshiも選択肢となります。
データベースの抽象化/O/Rマッピング
Pylonsにはデフォルトのデータベースライブラリは含まれていません。一般的には、SQLObjectやSQLAlchemyが利用されます。
Pylonsの終焉とPyramidの誕生
Pylonsは、Pylonsプロジェクトによって開発が進められてきましたが、Pylons 2の開発中にrepoze.bfg(
Zope由来のコンポーネントをWSGIアプリケーションで利用可能にするフレームワーク)との類似性が高まったため、両プロジェクトのコードベースと開発コミュニティを統合する動きが始まりました。2010年11月にはプロジェクト統合が合意され、Pylonsはメンテナンスモードに移行し、repoze.bfgをベースとした新しいPylonsプロジェクトがPyramidとしてスタートしました。
Pyramid
Pyramidは、WSGIベースの
Pythonで書かれたオープンソースの
Webアプリケーションフレームワークです。
Zope、Pylons、そして
Djangoに触発されており、小さく、高速で、堅牢なフレームワークを目指しています。Pylons 1.0は、WSGIベースの代表的なフレームワークでしたが、拡張性の問題からAPIが凍結されていたため、Pylonsフレームワークはrepoze.bfgをベースとした開発に移行しました。その結果、repoze.bfgプロジェクトがPylonsプロジェクトに合流し、repoze.bfgはPyramidと改称されました。バージョン1.3からは
Python 3に対応しており、
Python 3.2以上で利用可能です。
外部リンク
Pylonsで利用される主なパッケージ
- - Myghty - URLディスパッチ、コントローラ、キャッシュ機構、テンプレート機能など
- - Mako - Myghtyに代わるテンプレートエンジン
- - Python Paste - プロジェクトの設定、テスト、配置
- - EasyInstall - インストールとパッケージの依存関係管理
- - Routes - Rails routesに基づくRoutingの実装
- - FormEncode - フォームの検証と生成
- - WebHelpers - HTMLヘルパー機能
メーリングリスト
脚注
Google Groupsの情報によると(2018年5月8日時点):
- - メンバー数: 2871人
- - 月平均メッセージ数: 25件(過去3ヶ月間)
関連項目
- - Webアプリケーションフレームワーク
- - Python%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E8%A3%BD%E5%93%81%E3%81%BE%E3%81%9F%E3%81%AF%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%AE%E4%B8%80%E8%A6%A7'>Pythonを使っている製品あるいはソフトウェアの一覧