E71:mod_pythonでcookieを使ってみる(3)
Last-modified: 2013-08-24 (土) 02:14:21 (3870d)
Top / E71:mod_pythonでcookieを使ってみる(3)
E71:mod_pythonでcookieを使ってみる(3) †
さてさて、第3弾は、Cookie.Cookieクラスで複数の値を扱ってみます。
まあ、MarshalCookie?クラスを使わなくても、複数の値を保持することは出来ます。
が、どっちがいいんですかね~
ではでは、サンプルソース見てみましょう!
このサンプルでも2つの値を扱います。
- id : 値を保持する
- counter : カウントアップする
という2つの値をCookieで保持し、処理します。
作成するソースは以下の2つ
- .htaccess
- cookie.py
.htaccess †
解説は割愛します笑
# setting Handler SetHandler mod_python # Add Python Handler PythonHandler cookie # Debug On PythonDebug On # Option OFF Options None
cookie.py †
ポイントだけ掻い摘んで解説します。
from mod_python import Cookie,apache def handler(req): ck = Cookie.get_cookies(req) if not ck.has_key('counter'): value = { 'id':'0001','count':0} cntck = Cookie.Cookie('counter',0) ← 1 idck = Cookie.Cookie('id','0001') ← 1 message = \ 'No sent cookie, so now create\n %s, %s' % (cntck,idck) Cookie.add_cookie(req, cntck) ← 2 Cookie.add_cookie(req, idck) ← 2 else: num = int(ck['counter'].value) + 1 ← 3 Cookie.add_cookie(req,'counter',num) ← 3 Cookie.add_cookie(req,'id',ck['id'].value) ← 3 message = 'cookie is %s, %s' % (num,ck['id']) req.write("<html>\n<body>\n<h1>\n") req.write(message) req.write("\n</h1>\n</body>\n</html>\n") return apache.OK
- 「id」と「counter」に対応する2つのCookie.Cookieクラスのオブジェクトを作成します。
- 1.で作成したオブジェクトを2回に分けてリクエストオブジェクトにセットします。
- カウントアップし、同じく「id」、「counter」別々にリクエストオブジェクトにセットします。
手抜きな解説ですが、まあ掻い摘んだってことで笑
動かしてみる †
さてさて、資材を配置し、apacheを起動し、配置したURLにアクセスすると、このような画面が表示されます。
おお、1回目の画面が表示された笑&br
もう一回アクセスすると・・・;
ちゃんと足しこまれます。
もう一回アクセスすると・・・
ちゃんと足しこまれます。笑
もう一回アクセスすると・・・
ちゃんと足しこまれます。笑
添付ファイル: Screenshot0083.jpg 1478件 [詳細] Screenshot0085.jpg 1449件 [詳細] Screenshot0082.jpg 1503件 [詳細] Screenshot0084.jpg 1475件 [詳細]