webappでcookieを使う(GoogleAppEngine) このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加

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が扱えるようになりましたね。

関連する記事

タグ: ,

add to hatena hatena.comment (3) add to del.icio.us (3) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 6

コメントをどうぞ