Python Pylons セッション管理とテンプレートへの変数渡し



セッション管理の方法と、controllerからテンプレートへ
変数を渡す方法です。

controllers/hello.pyに、こんなメソッドを追加しました。


def sessiontest(self):
  count = 1
  #セッションオブジェクトに'count'が含まれているか
  if session.has_key('count'):
    #含まれていたら、値を取り出してカウントアップ
    count += session['count']
  #セッションオブジェクトにカウントを保存
  session['count'] = count
  #セッションのセーブを実行
  session.save()
  
  #cというオブジェクトのcountに、countを渡す
  #このcオブジェクトがテンプレートに渡される。
  c.count = count
  
  #ちなみに、configというオブジェクトも定義されており、
  #development.iniの内容を取得できる。
  print config['error_email_from']
  print config['smtp_server']
  
  return render('/sessiontest.mako')


templates/sessiontest.makoはこんな感じ

${c.count}回目の表示



ページをリロードするたび、カウントアップされていきます。





さて、サーバを再起動すればセッションは消えると
思ったのですが、どうもちゃんと残してくれている模様。

data/sessionsに保存してくれるようです。


このフォルダを消したら、セッションがリセットされました。




もどる