Pylons

Pylonsは、Python言語で記述されたオープンソースのWebアプリケーションフレームワークです。その特徴は、再利用性を促進し、機能を各モジュールに分割するためにWSGI(Web Server Gateway Interface)標準を広く採用している点にあります。Pylonsは、DjangoTurboGearsといった他の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を使っている製品あるいはソフトウェアの一覧

もう一度検索

【記事の利用について】

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

【リンクついて】

リンクフリーです。