Engine向けのアプリを作る際に最初に悩んだのはフレームワークの選択。Engineにはwebappという最低限の機能を持ったフレームワークが付いて来るが、Python使いの人たちの間では、DJangoというフレームワークが広く使われているらしいし。いって、あまり大きなフレームワークを使うと、パフォーマンスのチューニングとかもしにくくなるし、フレームワークそのもののバグや制限に悩ませられる可能性もある。そんな中で増井君が見つけてくれてまず試したのが、Junoというフレームワーク。DJangoと比べると遥かに小さく、WebappよりもURLのルーティングのメカニズムとかが充実している。そこで一旦はアプリをJunoの上で作り始めたのだが、Junoのソースコードを見ているうちにいろいろと気に入らないところが出て来た。不必要にオプションが多いし、同じことをする方法を何通りも用意している点が気に入らない。しても我慢ができなかったのが、レスポンスをグローバル変数を通して行っていること。そこで着目したのが、JunoにあってWebappに不足しているのはURLルーティングのローカルな記述だけだという点。URLからHandlerへのマッピングリスト])wsgiref.handlers.CGIHandler().run(application)Junoの場合は以下のように、処理をするファンクションにデコレータの形でURLを記述できるのである。logoutの実装juno.run()そこで思いついたのが、同じような仕組みをwebappでできるようにするモジュールを作るということ。それさえできれば余計なフレームワークなしでwebapp上でアプリを作ることができる。試行錯誤の作ったのが、gdispatchというモジュール。logoutの実装gdispatch.run()とするだけの話。これがあれば、RequestHandlerの数が増えて複数のファイルまたがったとしても、関連するURLマッピングのルールはそれぞれのRequestHandlerと一緒に記述できるのでとても便利である。Engineに標準で付いて来るwebappに必要最小限の手を加えて使うのが一番良い」というのが私なりの結論である。ちなみに、gdispatchはgithubに公開しておいたので試したい方はどうぞ(http://github.com/snakajima/gdispatch)。engineのフレームワークはkayも良いと思います。コードhttp://code.google.com/p/kay-framework/ドキュメントhttp://kay-docs-jp.shehas.net/Pythonの代表的なWebアプリ用のモジュールであるwerkzeugやjinja2などが上手く組み合わさっていると思います。01:28GAEOとか良さげですよ。TypepadTop。