トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

E71:mod_pythonでセッションを使ってみる のバックアップの現在との差分(No.1)


  • 追加された行はこの色です。
  • 削除された行はこの色です。
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を再起動すると、セッションは初期化されます。(当然ですが笑)