GoogleAppEngineで何かを作る時はapp-engine-patchを使っているのですが、ちょっとした実験等をする時はやっぱりwebappが手軽です。今回はセッションの実験をしたかったのですが、webappにはセッションを扱う仕組みがないので、自前でCookie周りの処理をしようと思ったら、Cookieを扱うライブラリも標準ではありませんでした。いやでも流石にCookieくらいはだれか書いてるだろうという事で調べてみたら、GoogleAppEngineのオンラインCookbookに記事が見つかりました。
この記事のソースコードを適当に保存して(僕はsimple_cookie.py)、以下のようにして使用します。このクラスを使うと辞書と同じ感覚でCookieを扱えます。Cookiesのコンストラクタでmax_ageを指定する事で、セッションの期限も決める事ができます。以下は簡単なログインとログアウトの例です。
from simple_cookie import Cookies class Login(webapp.RequestHandler): def get(self): cookie = Cookies(self, max_age=300) if not cookie.has_key('sid'): cookie['sid'] = str(uuid.uuid4()) # 5分間維持するセッションID作成 sid = cookie['sid'] username = memcache.get(sid) # do something with session class Logout(webapp.RequestHandler): def get(self): cookie = Cookies(self, max_age=300) if cookie.has_key('sid'): memcache.remove(cookie['sid']) del cookie['sid'] # セッションの削除
これでwebappでもセッションやCookieが扱えるようになりましたね。
関連する記事
タグ: google app engine, python

