Python向けのウェブアプリケーションフレームワークはいろいろあるのですが、その中からwebapp2をいじってみたのでメモがわりにここに書いてみるぜ。
webappという名前を見て気付いた人もいると思うけど、GoogleAppEngineで使われてるフレームワークなのだ。
webappがPython2.5用の以前からあるフレームワークで、webapp2の方はPython2.7向けの新しいフレームワーク。
さて、このwebapp2。GoogleAppEngine上だけでなく、ふつーのWSGIアプリケーションとして動くんですな。
今回はGoogleAppEngineを使わずにwebapp2をいじってみることにしたよ。
まず最初はwebapp2のインストールなのだが、今回はわけあってモジュールとしてインストールせずに使ってみた。
必要なのは
の3つ。それぞれ最新版のwebapp2-2.5.1.zip、WebOb-1.2b3.zip、Paste-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を叩いたらちゃんと動いた!
あ、環境はMacOSX 10.7.3上のpython 2.7.1でございます。
GoogleAppEngineをよく使う人にとっては、GoogleAppEngine以外のところでも同じ感覚でウェブアプリ書けてステキ。
webapp2自体はシンプルなフレームワークなので、いろいろ自分色に染めまくるのもいいかも。
オレオレフレームワークでも作ってみるかい?