E71:mod_pythonでセッションを使ってみる
Last-modified: 2013-08-24 (土) 02:14:21 (3891d)
Top / E71:mod_pythonでセッションを使ってみる
E71:mod_pythonでセッションを使ってみる
mod_pythonでsessionを使ってみます。
使い方はいたって簡単です。サンプルのソースを以下に掲載します。
内容は非常に簡単で、アクセスした回数をカウントアップするものです。
作成する対象のファイルは以下のとおり
- .htaccess
- session.py
2つのファイルを作成し、同じディレクトリに格納します。(小生は「demo21」というディレクトリ格納しております。)
.htaccess †
.htaccessの内容は以下のとおり。
■.htaccess
# setting Handler SetHandler mod_python # Add Python Handler PythonHandler session ←1 # Debug On PythonDebug On # Option OFF Options None
- ハンドラーに「session」モジュールを指定します。
session.py †
同じく、内容は以下のとおり。
■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要素に対してカウントアップを試みます。
sessionにまだcounter要素が無い場 合、Errorが発生し、後続のexcept:に流れます。 - sessionにcounter要素を追加します。
- sessionを保存します。
- sessionの内容、IDを出力します。
まあ、基本的な使い方としては、そんなに難しくないですな~
動かしてみる †
さてさて、資材を配置し、apacheを起動し、配置したURLにアクセスすると、このような画面が表示されます。
Hello+アクセス回数、セッションIDが表示されます。
もう一度アクセスすると、アクセス回数がカウントアップされます。
ちゃんとかうんとアップされます。ちなみに、apacheを再起動すると、セッションは初期化されます。(当然ですが笑)