サンプルコードで分かるGAE&Twitter API開発 (3/5)
2010年04月28日 11時00分更新
サンプルコードの処理を理解しよう
サンプルに含まれるファイルの役割が分かったら、それぞれのファイルの具体的な処理の中身を見ていきましょう。本来はGAEやPythonなどの基本的な部分から解説したいところですが、全5回ではとても収まらない大型連載になってしまいますので、GAEやPythonの基本的なところは以下のページを併せてチェックしてください。SDKのインストールから実際のコーディング、サーバーへのアップロードまでをチュートリアル形式で学習できる、大変すばらしいガイドとなっています。
Google App Engine -スタートガイド:Python
http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/
また、ここではサンプルコードを理解するうえでポイントとなる部分のみ説明しますが、サンプルコード中にも処理内容をコメントとして記述してありますので、参考にしてください。
main.pyがプログラムの本体なのはなぜ?
まずは、app.yamlをテキストエディターで開いてみましょう。前のページで、「main.pyがサンプルプログラムの本体である」と説明しましたが、その理由はこのapp.yamlの中に隠されています。
[app.yaml:6~8行目]
handlers:
- url: .*
script: main.py
「main.py」というファイル名があります。実はここで、アプリケーションのすべてのURLはこの「main.py」ファイルが処理する、と定義しています。
app.yamlの記述方法に関して、詳しくはGoogleのドキュメントをご覧いただきたいと思いますが、「.*」は正規表現で「すべての文字列パターンにマッチする」という意味である、と知っている人なら、「すべてのURLはmain.pyで処理する」ことが何となく理解してもらえると思います。
oauth.py やsimple_cookie.pyなどのファイルはどう使う?
main.pyがメインの処理だとすると、同じくPythonで書かれた外部ファイルの「oauth.py」や「simple_cookie.py」はどのようにしてmain.pyから利用されているのでしょうか?
外部のPythonファイル(モジュール)を読み込むには、まずimportという宣言をする必要があります。main.pyの「20~33行目」に、
import oauth
from simple_cookie import Cookies
という記述が見つけられると思います。この2行が、それぞれ
- 「oauth.py」というファイル(拡張子.pyより前の部分と対応します)を使う
- 「simple_cookie.py」ファイルの中から、Cookiesというクラスを使う
という宣言になっています。その結果、TwitterClientクラスやCookiesクラスが利用できるわけです。
今回のサンプルではoauth.pyとsimple_cookie.pyの2つだけではなく、「webapp」や「template」など、さまざまなモジュールを読み込んでいますが、これらも仕組みは同じです。GAE SDKのインストールフォルダ以下には大量のPythonファイルが置かれていて、そこからモジュールを読み込んで使っているだけなのです。