E71:mod_pythonでcookieを使ってみる(3) の変更点
Top / E71:mod_pythonでcookieを使ってみる(3)
- 追加された行はこの色です。
- 削除された行はこの色です。
- E71:mod_pythonでcookieを使ってみる(3) へ行く。
- E71:mod_pythonでcookieを使ってみる(3) の差分を削除
*E71:mod_pythonでcookieを使ってみる(3) [#w0eb6591] さてさて、第3弾は、Cookie.Cookieクラスで複数の値を扱ってみます。 まあ、MarshalCookieクラスを使わなくても、複数の値を保持することは出来ます。&br; が、どっちがいいんですかね~ ではでは、サンプルソース見てみましょう! このサンプルでも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' % (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」別々にリクエストオブジェクトにセットします。 手抜きな解説ですが、まあ掻い摘んだってことで笑 ***動かしてみる [#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;