Python mod_wsgiアプリケーションでの HTTP クッキー(cookies)の入力と出力

Python mod_wsgiアプリケーションでの HTTP クッキー(cookies)の入力と出力

(1) クッキーの出力

30日間有効な「session」という名前の1〜1億までのランダムな値を持ったクッキーを出力する例

def application(environ, start_response):
	import Cookie
	import datetime
	import random

	expiration = datetime.datetime.utcnow() + datetime.timedelta(days=30)
	cookie = Cookie.SimpleCookie()
	cookie["session"] = random.randint(1, 100000000)
	cookie["session"]["domain"] = "クッキーの有効なドメイン"
	cookie["session"]["path"] = "クッキーを有効にするパス"
	cookie["session"]["expires"] = expiration.strftime("%a, %d-%b-%Y %H:%M:%S GMT")


	status = '200 OK'
	response_headers = [('Content-type', 'text/html; charset=utf-8'),
					('Set-Cookie', cookie["session"].OutputString())]


(2) クッキーの入力

def application(environ, start_response):
	import Cookie

	cookie = Cookie.SimpleCookie()
	cookie.load(environ['HTTP_COOKIE'])
	if cookie.has_key("session"):
		session = cookie["session"].value
	else:
		"session"という名前のクッキーが存在しない時の処理