Pylons

Python 言語で書かれたオープンソース の webアプリケーションフレームワーク

PylonsPython 言語で書かれた オープンソースwebアプリケーションフレームワークである。再利用性を促進し、機能を各モジュールに分割するためにWSGI 標準を広い範囲にわたり採用している。

Pylons
開発元 Ben Bangert, James Gardner
最新版
1.0.1 / 2012年8月13日
プログラミング
言語
Python
対応OS クロスプラットフォーム
種別 Webアプリケーションフレームワーク
ライセンス BSD License
公式サイト [1]
テンプレートを表示

Pylons は、DjangoTurboGears などを含む昨今の webアプリケーションフレームワークの中でも最も新しいもののひとつである。Ruby on Railsに強い影響を受けており、主要なコンポーネントのうちRoutesWebHelpers は、Rails の機能を Python で再実装したものである。

Pylonsはメンテナンスモードに移行し実質的な開発は終了し、後継となるPyramidに移行している。

特徴

編集

構造

編集

Pylons は他社が開発したツールに基づくほぼ完成したスタックを持つことで知られており、明らかに NIH シンドロームを避けている。

インストール、依存ソフトウェア、設定

編集

Pylons の公式なインストールの方法は、the Python CheeseShop 経由でEasyInstall を用いて行うことで、追加のツールもたいていは同じ方法でインストールされる。EasyInstall は必要に応じてパッケージの依存関係を解決する。Pylons と Paste を一緒にパッケージした配布系もあるが、配布系のパッケージは公式の配布物より遅れる傾向がある。Pylons は .egg ファイルを .zip ファイルに変更し、内容を展開することでもインストールできる。

Pasteプロジェクトの設定、テスト、配置に使用される。共通の INI構成フォーマットを用いており、Paste では開発と配置の設定を、インタラクティブなデバッガなどの Pylons の複雑な部分を製品版のユーザーから隠蔽した状態で開発者が同じコードベースをもとに動作させられるよう、複数の"プロファイル"を用いることができる。

URL のディスパッチ

編集

Selectorなどの WSGI 互換の URL ディスパッチャであればどれでも使用可能だが、現在 Pylons 用に広く使われている唯一の URL ディスパッチャはRuby on Railsの URL ディスパッチ機構を Python で再実装したRoutes である。

HTML の生成

編集

Pylonsでも採用されたRailsのもう一つの機構が、Routes の設定に基づき URL のマッピング機能を提供するWebHelpersである。WebHelpers は、script.aculo.usPrototype ライブラリを利用したJavaScriptコードを生成するためのユーティリティ的な機能も提供する。

HTML フォームの検証と生成のために、FormEncodeFormBuild が用いられている。Mako の継承モデルを用いてフォームの生成を行うために、Mako も一部で用いられている。

テンプレート

編集

Myghty がバージョン 0.9.5 まで Pylons のデフォルトのテンプレート言語であったが、バージョン 0.9.6 で Mako に置き換えられた。[1]いずれのテンプレート言語もインクルード、継承、任意の Python コードの埋め込みをサポートするテキストベース(XMLベースのものではない)のテンプレート言語である。

Pylons の緩く結合されたレイヤ構造により、それ以外のテンプレート言語も利用可能である。XML ベースのテンプレート言語Genshi もMako や Myghty いずれかの代わりに使用することができる。[2]

データベースの抽象化 / O/Rマッピング

編集

Pylons にはデフォルトのデータベースライブラリはない。SQLObjectSQLAlchemy が知られている。

repoze.bfgとのプロジェクト統合によるPylons終了とPyramidの誕生

編集

フレームワークのPylons はPylons プロジェクトが開発してきたが、Pylons 2 の開発を進めるうちに repoze.bfg (Zope 由来のコンポーネントをWSGIアプリケーションで利用できるようにしたコンポーネント集であるrepozeで構成されたフレームワーク) と似てきたことで、コードベース と開発コミュニティをマージする方向へとシフトする。2010年11月のrepoze.bfg とのプロジェクト統合の合意により、Pylonsの新しいバージョンはオリジナルのPylons 1.0 と大きく変わることとなる。こうしてPylonsプロジェクトはメンテナンスモードに移行し、Pyramidと銘打ったrepoze.bfgをコードベースとする新しいPylons プロジェクトが開始されることとなった[3]

Pyramid

編集
Pyramid
 
開発元 Chris McDonough, Ben Bangert
初版 2008年7月8日 (2008-07-08)(前身のrepoze.bfg )[4]
2011年1月30日 (2011-01-30)(repoze.bfgと統合後の1.0バージョン)[5]
最新版
1.9.2 / 2018年4月23日 (6年前) (2018-04-23)[6]
プログラミング
言語
Python
対応OS クロスプラットフォーム
種別 Webアプリケーションフレームワーク
ライセンス BSDライセンス
公式サイト trypyramid.com
テンプレートを表示

Pyramid は、WSGIベースのPythonで書かれたオープンソースWebアプリケーションフレームワークZopePylonsDjangoに触発された、小さく速く堅実 (down-to-earth)なフレームワークである[7]

Pylons 1.0は、WSGIベースのフレームワークとして代表的な存在であったが、PylonsApp とWSGIControllerメソッドは実質的にAPI として凍結されているなど、拡張性を取り入れるために改良しようとすることが困難であることが分かった[3][8]

一方、repoze.bfgは、Zope 3のコンポーネントアーキテクチャを利用しており[9]、Zopeのコミュニティから大きな注目を集めていた[10]。 2010年に、Pylonsフレームワークは、repoze.bfgをベースとした開発に移行することを発表した[11]。それは結果として、repoze.bfgプロジェクトがPylonsプロジェクトに合流し、repoze.bfgがPyramidに改称することであった[12]

バージョン1.3から、Python 3 互換となった。 Python 3.2 以上であれば、 Pyramidを使用できる[13]

バージョン リリース日
1.0 2011年1月30日
1.1 2011年7月22日
1.2 2011年9月12日
1.3 2012年3月21日
1.4 2012年12月18日
1.5 2014年4月8日
1.6 2016年1月3日
1.7 2016年5月19日
1.8 2017年1月21日
1.9 2017年6月26日

外部リンク

編集

Pylons の標準インストールで用いられるパッケージ、および人気の高い追加パッケージ

  • Myghty - URL のディスパッチ、コントローラ、キャッシュ機構、テンプレート機能など
  • Mako - Myghty 以外のテンプレートエンジン
  • Python Paste - プロジェクトの設定、テスト、配置
  • EasyInstall - インストールとパッケージの依存関係
  • Routes - Rails routes に基づく Routing の実装
  • FormEncode - フォームの検証と生成
  • WebHelpers - HTML ヘルパー機能

メーリングリスト

編集

Google Groups からの情報によると(2018年5月8日):

  • メンバー 2871 人
  • 月平均 25 メッセージ(過去3ヶ月間)

脚注

編集
  1. ^ Haas, Christoph Beginning Pylons. Retrieved July 5, 2007
  2. ^ Genshi Wiki Pylons with Genshi Retrieved July 5 2007
  3. ^ a b Pylons ユーザのための Pyramid 移行ガイド”. 2014年3月26日閲覧。
  4. ^ BFG_HISTORY.txt
  5. ^ Pyramid Change History 1.0(2011-01-30)”. Agendaless Consulting. 2013年9月14日閲覧。
  6. ^ Pyramid Change History”. 2018年5月8日閲覧。
  7. ^ Chris McDonough. “repoze.bfg introduction”. 2010年9月21日閲覧。
  8. ^ Why Extending Through Subclassing (a framework’s classes) is a Bad Idea (翻訳)”. 2014年3月27日閲覧。
  9. ^ Repoze.bfgについて”. 2014年3月27日閲覧。
  10. ^ Gary Poster (2010年9月17日). “Zope Summit, DZUG, repoze.bfg”. 2010年9月21日閲覧。
  11. ^ Ben Bangert (2010年9月18日). “Emails explaining the Pylons 2 structure”. 2010年9月21日閲覧。
  12. ^ repoze.bfg is now Pyramid”. 2011年1月3日閲覧。
  13. ^ Pyramid 1.3 の新機能”. 2014年3月27日閲覧。

関連項目

編集