FTU技術開発 〜 GAE main.py

今日何件ブログ更新する気なんだろww

ということで、今日はGAEアプリの中枢main.pyの中身について


main.pyの中身はこんな感じですね。

from google.appengine.ext import webapp
from google.appengine.ext.webapp import util

class MainHandler(webapp.RequestHandler):
    def get(self):
        self.response.out.write('Hello world!')

def main():
    application = webapp.WSGIApplication([('/', MainHandler)], debug=True)
    util.run_wsgi_app(application)

if __name__ == '__main__':
    main()

うーん、なんか文字小さくない?まあ、ハイライトしないよりはマシですか。


確認するべき箇所は
4行目 class MainHandler(we ... っていうとこと
9行目 application = webapp.WSGIA ... っていう所

まず9行目。
webapp.WSGIApplicationの引数第1項目はリストになってます。

[('/', MainHandler)]

中身はタプル1つで、タプル内は

    • '/'
    • MainHandler

です。

まず '/' ですが、これはアドレスです。今、アプリ名はtestとします。
前回、FTU技術解説 〜 GoogleAppEngine - 335g memo でアプリがtestであれば
アドレスは ://test.appspot.com/ であると書きました。ここでの '/' は これを表します。
つまり、'/test' となっていれば ://test.appspot.com/test を意味します。

次の2項目はMainHandlerです。これは4行目のクラス名と同じです。
つまり、://test.appspot.com/ と MainHandler がここで紐付けられている事になります。

まとめると、

://test.appspot.com/ にアクセス → MainHandlerのgetメソッドを呼び出す → Hello worldと表示

という流れです。


という事はですね、処理毎にアドレスを変えて、その分だけClass作ってやるというわけです。
そして、先ほどのwebapp.WSGIApplicationの引数第1項目タプルにリスト追加していくわけです。
FTU的には、オンオフ情報を調べるときはこのアドレス、試合結果を取るときはこのアドレス、
という感じにしています。


あ、self.response.out.write()の部分でHello World表示しているのはいいですよね。
これはよく使うので一応確認を。

次回はJSONの説明にします。