トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

E71:mod_pythonでセッションを使ってみる

Last-modified: 2013-08-24 (土) 02:14:21 (2982d)
Top / E71:mod_pythonでセッションを使ってみる

E71:mod_pythonでセッションを使ってみる

mod_pythonでsessionを使ってみます。

使い方はいたって簡単です。サンプルのソースを以下に掲載します。

内容は非常に簡単で、アクセスした回数をカウントアップするものです。

作成する対象のファイルは以下のとおり

  1. .htaccess
  2. 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
  1. ハンドラーに「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
  1. apacheのリクエストオブジェクトを引き数にして、SessionモジュールのSessionクラスを生成します
  2. counter要素に対してカウントアップを試みます。
    sessionにまだcounter要素が無い場 合、Errorが発生し、後続のexcept:に流れます。
  3. sessionにcounter要素を追加します。
  4. sessionを保存します。
  5. sessionの内容、IDを出力します。

まあ、基本的な使い方としては、そんなに難しくないですな~

動かしてみる

さてさて、資材を配置し、apacheを起動し、配置したURLにアクセスすると、このような画面が表示されます。

Screenshot0062.jpg


Hello+アクセス回数、セッションIDが表示されます。
もう一度アクセスすると、アクセス回数がカウントアップされます。

Screenshot0063.jpg



ちゃんとかうんとアップされます。ちなみに、apacheを再起動すると、セッションは初期化されます。(当然ですが笑)


添付ファイル: fileScreenshot0063.jpg 1107件 [詳細] fileScreenshot0062.jpg 1107件 [詳細]