Pylons

Pylons開発元|  Ben Bangert, James Gardner

|

最新版|

1.0.1 / 2012年8月13日

プログラミング
言語|  Python
対応OS|  クロスプラットフォーム
種別|  Webアプリケーションフレームワーク
ライセンス|  BSD License
公式サイト|  [1]
テンプレートを表示

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

Pylons は、Django や TurboGears などを含む昨今の webアプリケーションフレームワークの中でも最も新しいもののひとつである。Ruby on Railsに強い影響を受けており、主要なコンポーネントのうちRoutes と WebHelpers は、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.us や Prototype ライブラリを利用したJavaScriptコードを生成するためのユーティリティ的な機能も提供する。

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

### テンプレート

[編集]

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

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

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

[編集]

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

### 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]
最新版|

2.0.2 / 2023年8月25日 (22か月前) (2023-08-25)[6]

プログラミング
言語|  Python
対応OS|  クロスプラットフォーム
種別|  Webアプリケーションフレームワーク
ライセンス|  BSDライセンス
公式サイト|  trypyramid.com
テンプレートを表示

Pyramid は、WSGIベースのPythonで書かれたオープンソースのWebアプリケーションフレームワーク。Zope・Pylons・Djangoに触発された、小さく速く堅実 (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 Project home page
* Pylons framework
* Pyramid framework
* repoze.bfg framework
* Pylons Wiki
* Sites using Pylons
* Pylons に関連する文書の日本語訳

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

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

### メーリングリスト

[編集]

* pylons-discuss on Google Groups

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”. 2025年3月1日閲覧。
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日閲覧。

## 関連項目

[編集]

ポータル FOSS

* Webアプリケーションフレームワーク
* Pythonを使っている製品あるいはソフトウェアの一覧

* 表
* 話
* 編
* 歴

Webアプリケーションフレームワーク

ASP.NET|

* ASP.NET MVC
* ASP.NET Web Forms
* Umbraco

Groovy|

* Grails

Java|

* Apache Struts
* GWT
* ICEfaces
* JavaServer Faces
* Play
* Spring
* Tapestry
* WebWork
* Wicket
* ZK

JavaScript|

* Angular/AngularJS
* Backbone.js
* Dojo Toolkit
* Express.js
* Ext JS
* jQuery
* Knockout.js
* MooTools
* Node.js
* Prototype
* React
* Rico
* Sencha Touch
* Vue.js
* Hono
* ElysiaJS
* Qwik

Perl|

* Catalyst
* Mojolicious

PHP|

* CakePHP
* CodeIgniter
* Drupal
* eZ Publish
* FuelPHP
* Grav
* Laravel
* PRADO
* Symfony
* TYPO3
* Yii
* Zend
* Silex

Python|

* CherryPy
* Django
* Flask
* Plone
* Pylons
* Tornado
* TurboGears
* web2py
* Zope

Ruby|

* Ruby on Rails
* Sinatra
* Padrino

Scala|

* Lift
* Play

カテゴリ