2011年10月20日木曜日

PyramidフレームワークでPython+WSGIのWebアプリ(1)とっかかり

Webアプリケーションを作成するとき,そのための道具は枚挙に暇がありませんが,Python界隈がにぎわっているようです.


僕はこれまでJava系のフレームワークしか利用したことがなかったのですが,スクリプト言語でのWebアプリも興味深いですね.


というわけでPythonでのWebアプリ作成を検討します.


理由は上記のものもありますが,ちょっと遊んでみようと思って,日本語でのドキュメントやチュートリアルなんかが少ないな,と感じたので,皆さんと共有できれば幸い,というのが大きいです.


Google App Engineも,PythonのWebアプリケーションフレームワークで実装しているんだとか.


そうだ,Pyramidをつかおう

さて,早速PythonでのWebアプリ作成にとりかかりたいと思います.


ここで気になるのが道具ですね.どうも,Python単体では,いろいろやろうと思うと限界がありそうです.そこで,JavaでいうTomcatやglassfishにあたる,Webアプリケーションフレームワークが欲しくなります.


Python界では本当に多くのフレームワークがあり,選択肢が多いです:
  • Twisted
  • Zope
  • CherryPy
  • TurboGears
  • Django
  • Pylons
老舗にあたるのがどうやらTurboGearsのようです.が,ここではPylonsに注目してみようと思います.理由は,開発スピードが早く日本語のドキュメントが少ないこと,Ruby on Railsを彷彿させるMVCアーキテクチャを採用していること,包括的に多くのフレームワークを持ちつつ,シンプルな記述も可能であること,などです.
フレームワークのフレームワークとでも言えばいいでしょうか.Pylonsは他の多くの仕組みを自身に持っています.アプリケーションサーバでいうと富士通のInterstageがSpringやStrutsなどのオープンソースフレームワークを抱えていますが,ちょうどそのようなイメージです.


そして,Pylonsを含む上記リストアップしたフレームワークの特徴として,WSGIに準拠している,というものがあります.
WSGIとはフレームワークを用いてサーバとアプリがやりとりをするとき,その方法をPythonで定義したものです.ちょうど,JavaでいうServletやjspみたいなものです.
よって,Pylonsを使ってWebアプリを作り続けたが,他のフレームワークへ移行したいというシーンがあったとき,それまでのがんばりが無駄になることはありません.WSGIに準拠したフレームワークであれば,我々はその実装を意識することなく,Webアプリのコードが書けます.


が,このPylons,開発スピードが速いのもあってか,バージョン1.0を境にサポートは行うが新しく開発はしないというメンテナンスモード,レガシーステータスに設定されてしまいました.
事情としては,
The Pylons web framework 1.x line will continue to be maintained, though not enhanced. We will provide a package that allows Pylons 1.x applications and Pyramid applications to run in the same interpreter. The future of Pylon-style web application development is Pyramid
ということらしいです.
かわりに,このPylonsを統合するような形で新しくフレームワークがリリースされました.それがPyramidです.このフレームワークについては日本語のドキュメントが圧倒的に少なく,また利用事例も少ないようです.


公式のドキュメントはこれでもかというほど充実しているので,それらを紐解きつつ,実践的なWebアプリを実装していきたいと思います.


と,いうわけで次回から実際にインストールしてみて,使ってみた時の記録をまとめていきたいと思います.





PyramidフレームワークでPython+WSGIのWebアプリ(2)インストール 〜 Hello, world



PyramidフレームワークでPython+WSGIのWebアプリ(3)MVCに則ったサンプル(BankAccount)


0 件のコメント:

コメントを投稿