- 追加された行はこの色です。
- 削除された行はこの色です。
E71:mod_pythonでセッションを使ってみる
mod_pythonでsessionを使ってみます。
使い方はいたって簡単です。サンプルのソースを以下に掲載します。
内容は非常に簡単で、アクセスした回数をカウントアップするものです。
作成する対象のファイルは以下のとおり
+.htaccess
+session.py
2つのファイルを作成し、同じディレクトリに格納します。(小生は「demo21」というディレクトリ格納しております。)
***.htaccess [#qe3c63a9]
.htaccessの内容は以下のとおり。
■.htaccess
# setting Handler
SetHandler mod_python
# Add Python Handler
PythonHandler session ←1
# Debug On
PythonDebug On
# Option OFF
Options None
+ハンドラーに「session」モジュールを指定します。
***session.py [#o939ea9f]
同じく、内容は以下のとおり。
■session.py
from mod_python import Session,Cookie,apache def handler(req):
session = Session.Session(req) ←1
try:
session['counter'] += 1 ←2
except:
session['counter'] = 1 ←3
session.save() ←4
req.write("<html>\n<body>\n<h1>\n")
req.write("Hello.%d\n" % session['counter']) ←5
req.write(session.id()) ←5
req.write("\n</h1>\n</body>\n</html>\n")
return apache.OK
+apacheのリクエストオブジェクトを引き数にして、SessionモジュールのSessionクラスを生成します
+counter要素に対してカウントアップを試みます。&br;
sessionにまだcounter要素が無い場
合、Errorが発生し、後続のexcept:に流れます。
+sessionにcounter要素を追加します。
+sessionを保存します。
+sessionの内容、IDを出力します。
まあ、基本的な使い方としては、そんなに難しくないですな~
***動かしてみる [#ubbd34f8]
さてさて、資材を配置し、apacheを起動し、配置したURLにアクセスすると、このような画面が表示されます。
&br;&br;
&ref(Screenshot0062.jpg);
&br;
Hello+アクセス回数、セッションIDが表示されます。&br;
もう一度アクセスすると、アクセス回数がカウントアップされます。
&br;&br;
&ref(Screenshot0063.jpg);
&br;&br;
ちゃんとかうんとアップされます。ちなみに、apacheを再起動すると、セッションは初期化されます。(当然ですが笑)