Web2py

web2pyは、データベースを使用するタイプのWebアプリケーションを、アジャイルで開発するためのオープンソースのフレームワークである。web2py はPythonで書かれており、Pythonでプログラム可能である。web2pyはセキュリティーの確保に重点を置いている。例えばデフォルトで入力値の検証を行ったり、出力のエスケープを行う仕組みを提供している。これらの仕組みはSQLインジェクション、クロスサイトスクリプティング、安全でないオブジェクトの直接参照といったよくある脆弱性の問題を未然に防ぐ。またweb2pyはModel View Controllerパターン、フォームの自己URLに対する送信、サーバー側でのセッションの維持、ファイルのアップロードの安全な取り扱いの仕組みなど、ソフトウェア工学に基づいた健全な開発手法を積極的に取り入れている。

web2pyはサイト構築に必要となる主な部品がビルトインで提供される、フルスタックなフレームワークである。例えば次のような部品が提供されている。

 クッキーのハンドラー、HTTPリクエスト、HTTPレスポンス
 設定可能なRAMディスク、メモリキャッシュ
 国際化
 自動的なエラーと実行内容のログの取得
 動的にSQL文を生成するデータベース抽象化レイヤー。このデータベースレイヤーはGoogle App Engineにも対応している
 複数のデータベースへの対応(SQLite, MySQL, PostgreSQL, Oracle, Microsoft SQL Server, Firebird, IBM DB2 and Google App Engine)
 複数の認証機構への対応と役割に基づいたアクセス制御
 CRUD API
 rss, csv, xml, json, xmlrpc, jsonrpc, amfrpc (Flash)に対応したサービスAPI

web2pyはDePaul Universityで教育用のツールとして開発されており、そのため学習曲線が非常に浅いという点で他のフレームワークとは異なっている。この理由から、簡単にサイトが立ち上げられるよう設計されており（インストール作業が不要）、開発、デバッグ、検証、メンテナンス、遠隔でのDB管理が外部のツールを必要とすることなく、ウェブベースで行えるようなインターフェースが用意されている。

web2pyは最新のPythonのウェブサーバとウェブアプリケーションの間のプロトコルであるWSGIに従っている。またweb2pyはCGIやFastCGIでも稼動可能。TLSが有効化されたCherryPy WSGIサーバーも備えているので、Apacheなどの外部のウェブサーバーは不要である。Apacheと動かすことももちろん可能。

 出版物 
 Web programming with web2py, Python Magazine, June 2008
 web2py Manual, Massimo DiPierro, Wiley, 2008

 リンク 
 web2py Website at DePaul University
 Google Groups web2py forum
 web2py Enterprise Web Framework (video)
 web2py on the Google appengine (video)
 web2py "Shootout" Tutorial (video)
 web2py-japan（日本語）

Category:オープンソースソフトウェア
Category:Python
Category:ウェブアプリケーションフレームワーク