Python用フレームワークwebapp2をいじってみたよ

Python向けのウェブアプリケーションフレームワークはあるのですが、その中からwebapp2をいじってみたのでメモがわりにここに書いてみるぜ。
webappという名前を見て気付いた人もいると思うけど、GoogleAppEngineで使われてるフレームワークなのだ。
webappがPython2.5用の以前からあるフレームワークで、webapp2の方はPython2.7向けの新しいフレームワーク。
さて、このwebapp2。GoogleAppEngine上だけでなく、ふつーのWSGIアプリケーションとして動くんですな。
今回はGoogleAppEngineを使わずにwebapp2をいじってみることにしたよ。

まず最初はwebapp2のインストールなのだが、今回はわけあってモジュールとしてインストールせずに使ってみた。
必要なのは

の3つ。それぞれ最新版のwebapp2-2.5.1.zipWebOb-1.2b3.zipPaste-1.7.5.1.tar.gzをダウンロード。
そいつらをディレクトリext以下で展開しておいておいた。
こんな状態ね。

webapp2_sample/
  + ext/
    + Paste-1.7.5.1/
    + WebOb-1.2b3/
    + webapp2-2.5.1/

まあ、ふつーに使う人はeasy_installなりpipでインストールすればいいんじゃないかな。

後はコードを書くだけですね。
今回は由緒正しくHello, Worldを書いてみた。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
sys.path.append('ext/Paste-1.7.5.1')
sys.path.append('ext/WebOb-1.2b3')
sys.path.append('ext/webapp2-2.5.1')

import webapp2

class HelloWorld(webapp2.RequestHandler):
    def get(self):
        self.response.write(u'こんにちは世界')

applications = webapp2.WSGIApplication([
    ('/', HelloWorld),
    ], debug=True)

def main():
    from paste import httpserver
    httpserver.serve(applications, host='127.0.0.1', port='8080')

if __name__ == '__main__':
    main()

「Hello, world!」じゃなくて「こんにちは世界」じゃないか、というツッコミはなしの方向でお願いできればと。さらに、コトノハサマは? なんて恐ろしすぎですよ…

動かすのは簡単。上のコードをmain.pyで保存してるとします。

$ python main.py

こ・れ・だ・け。
後はブラウザでlocalhostのポート8080を叩いたらちゃんと動いた!
f:id:calnarsa:20120415172616p:image
あ、環境はMacOSX 10.7.3上のpython 2.7.1でございます。

GoogleAppEngineをよく使う人にとっては、GoogleAppEngine以外のところでも同じ感覚でウェブアプリ書けてステキ。
webapp2自体はシンプルなフレームワークなので、いろいろ自分色に染めまくるのもいいかも。
オレオレフレームワークでも作ってみるかい?

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)