HiiHahWIKI - making some notes for... -
E71:mod_pythonでcookieを使ってみる(3)
をテンプレートにして作成
開始行:
*E71:mod_pythonでcookieを使ってみる(3) [#w0eb6591]
さてさて、第3弾は、Cookie.Cookieクラスで複数の値を扱って...
まあ、MarshalCookieクラスを使わなくても、複数の値を保持す...
が、どっちがいいんですかね~
ではでは、サンプルソース見てみましょう!
このサンプルでも2つの値を扱います。
-id : 値を保持する
-counter : カウントアップする
という2つの値をCookieで保持し、処理します。
作成するソースは以下の2つ
-.htaccess
-cookie.py
***.htaccess [#t45fc770]
解説は割愛します笑
# setting Handler
SetHandler mod_python
# Add Python Handler
PythonHandler cookie
# Debug On
PythonDebug On
# Option OFF
Options None
***cookie.py [#g45f5a21]
ポイントだけ掻い摘んで解説します。
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' % (cntc...
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」別々にリクエ...
手抜きな解説ですが、まあ掻い摘んだってことで笑
***動かしてみる [#t17c75ba]
さてさて、資材を配置し、apacheを起動し、配置したURLにアク...
&ref(Screenshot0082.jpg);&br;
おお、1回目の画面が表示された笑&br
もう一回アクセスすると・・・;&br;&br;
&ref(Screenshot0083.jpg);&br;
ちゃんと足しこまれます。&br;
もう一回アクセスすると・・・&br;&br;
&ref(Screenshot0084.jpg);&br;
ちゃんと足しこまれます。笑&br;
もう一回アクセスすると・・・&br;&br;
&ref(Screenshot0085.jpg);
ちゃんと足しこまれます。笑&br;
終了行:
*E71:mod_pythonでcookieを使ってみる(3) [#w0eb6591]
さてさて、第3弾は、Cookie.Cookieクラスで複数の値を扱って...
まあ、MarshalCookieクラスを使わなくても、複数の値を保持す...
が、どっちがいいんですかね~
ではでは、サンプルソース見てみましょう!
このサンプルでも2つの値を扱います。
-id : 値を保持する
-counter : カウントアップする
という2つの値をCookieで保持し、処理します。
作成するソースは以下の2つ
-.htaccess
-cookie.py
***.htaccess [#t45fc770]
解説は割愛します笑
# setting Handler
SetHandler mod_python
# Add Python Handler
PythonHandler cookie
# Debug On
PythonDebug On
# Option OFF
Options None
***cookie.py [#g45f5a21]
ポイントだけ掻い摘んで解説します。
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' % (cntc...
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」別々にリクエ...
手抜きな解説ですが、まあ掻い摘んだってことで笑
***動かしてみる [#t17c75ba]
さてさて、資材を配置し、apacheを起動し、配置したURLにアク...
&ref(Screenshot0082.jpg);&br;
おお、1回目の画面が表示された笑&br
もう一回アクセスすると・・・;&br;&br;
&ref(Screenshot0083.jpg);&br;
ちゃんと足しこまれます。&br;
もう一回アクセスすると・・・&br;&br;
&ref(Screenshot0084.jpg);&br;
ちゃんと足しこまれます。笑&br;
もう一回アクセスすると・・・&br;&br;
&ref(Screenshot0085.jpg);
ちゃんと足しこまれます。笑&br;
ページ名: