Turbogears-cookies-and-sessions
TurboGears –クッキーとセッション
多くの場合、ユーザーのブラウザに添付された簡単な閲覧データを保持する必要があります。 セッションは、最も一般的に使用される手法です。 セッションは、ディスクファイルやデータベースなどのより永続的な形式で保存する必要のないデータを表します。
ただし、TurboGearsのセッションデータは、ファイルシステム、データベース、またはハッシュされたCookieの値によってバックアップできます。 通常、少量のセッションデータがCookieに保持されますが、セッションデータの量が多い場合はMemCacheが使用されます。
MemCacheはシステムレベルのデーモンです。 キャッシュされたデータへの高速アクセスを提供し、非常にスケーラブルです。 ただし、セキュリティで保護されたサーバーでのみ使用することを目的としているため、sysadminによって保守および保護する必要があります。
セッション管理のビーカー
TurboGearsは、セッション管理にBeakerを使用します。 ギアボックスによってクイックスタートされるプロジェクトは、デフォルトでハッシュされたCookieを使用してセッションデータを保存するように構成されています。
クライアントが接続するたびに、セッションミドルウェア(ビーカー)は、構成ファイルで定義されているCookie名を使用してCookieを検査します。 Cookieが見つからない場合、ブラウザで設定されます。 その後のすべてのアクセスで、ミドルウェアはCookieを見つけて使用します。
セッション管理を有効にするには、次のインポートステートメントによってセッションクラスをプロジェクトに組み込む必要があります-
from tg import session
セッション変数にデータを保存するには-
session[‘key’] = value
session.save()
セッション変数を取得するには-
return session[‘key’]
キーをセッションに保存するには、セッションを明示的に保存する必要があることに注意してください。
セッションオブジェクトの* delete()*メソッドは、すべてのユーザーセッションを消去します-
session.delete()
特定の運用環境ですべてのユーザーセッションを削除することは一般的ではありませんが、通常は、ユーザビリティテストまたは機能テストが完了した後、クリーンアップするために行います。
以下に、セッションを示す簡単な例を示します。 RootControllerクラスには、セッション変数を設定する* setsession()*メソッドがあります。
from hello.lib.base import BaseController
from tg import expose, session
class RootController(BaseController):
@expose()
def setsession(self):
session['user'] = 'MVL'
session.save()
str = "<b>sessionVariable set to "+session['user']
str = str+"<br><a href = '/getsession'>click here to retrieve</a></b>"
return str
@expose()
def getsession(self):
return "<b>value of session variable retrieved " +session['user'] +"</b>"
*http://localhost:8080/setsession* と入力します
ブラウザ内のリンクは、セッション変数を取得して表示する http://localhost:8080/getsession につながります-