2008年4月8日火曜日

Google App Engine SDKのtutorialその2

先のエントリの続き。

Using the webapp Frameworkの内容をやってみる

  1. Hello, webapp!の節に従って、hellowordl.pyを編集し、ブラウザで動作を確認する。
  2. 「What webapp Does」節にこの処理の内容が詳しく解説されている。
    • webappモジュールはgoogle.appengine.extパッケージ内に存在していて、これが実行環境でも提供される
    • このコードではリクエストハンドラを定義していて、「MainApp」を「URL(/)」に対応させている。webappがRootUrl「/」へのGETリクエストを受けた時にMainAppを作成してgetメソッドを実行する。
    • 「self.request」でリクエストに関する情報を利用できる。
    • 「self.response」にあれこれすればレスポンスに関してあれこれできる。
    一部「if __name__ == "__main__"」とか意味がわからなかった。ちょろっと調べてみると、pythonのモジュールの最後によく書かれてたりしてた。python的に何かする時のお約束っぽい事か?となんとなく考えて無視する!
  3. 試しに「self.response.out.write(self.request.get('param1'))」とかをソースに追加して、「http://localhost:8080/?param1=aaa」とかやってみると、パラメータもちゃんと利用できるのを確認できた。

次にUsing the Users Serviceをやってみる

tutorialの該当ページを見てみると、便利サービスがたくさんあって、UserServiceはそのひとつですよん、とか書いてある。たぶん、標準でUser管理の機能があるんだろぅ。
  1. 例のごとく、helloworld.pyを「Using Users」の節にあるとおり編集して、例のごとく動作を確認する。
  2. 作り込んだ覚えの無いログイン画面が表示されて、ログインしてみると「Hello, ユーザ名」とか表示される。すげぇー。
  3. ちなみに、ログインした後はログアウトできない。別のtabからならどーよ?と思ったけど、別のtabからでもログイン済みの状態となった。Session管理のScopeが気になるが、今はあんまり関係ないし気にしない。
  4. 「The Users API」節にこのコードの説明が書かれている。
    • get_current_user()メソッドは、UserがLogin済みならUserObjectを、Loginしていない状態なら"None"を返す。
    • 「self.redirect()」でリダイレクトができる。UsersAPIの 「create_login_url()」は「Google account sign-in」機能を表示し、ログイン後に引数に渡したurlに戻ってくる。
    • リクエストされたurlは「self.request.uri」で取得できる。
    • それ以外のUsers APIについてはhttp://code.google.com/appengine/docs/users/を見ろ。
  5. ちなみに、Users APIの詳細をのぞいてみたが、logoutは「google.appengine.api.users」パッケージの「create_logout_url()」にlogout後のurlを渡す事でできそぅだ。

コメントを投稿