セッションは、Storageクラスの別のインスタンスです。たとえば、セッションに保存されているものは何でも:
session.myvariable = "hello"
後で取得できます:
a = session.myvariable
言い換えれば、それはすでにそこにあります-それに変数を割り当てるだけです。データベースを使用したい場合は、モデルを介してDBにセッションテーブルを定義する必要があります。web2pyマニュアルからの引用:
たとえば、データベースにセッションを保存するには、次のようにします。
session.connect(request, response, db, masterapp=None)
ここで、dbは開いているデータベース接続の名前です(DALによって返されます)。これは、セッションをファイルシステムではなくデータベースに保存することをweb2pyに通知します。session.connectは、db = DAL(...)の後で、セッションを必要とする他のロジック(Authの設定など)の前に配置する必要があります。
web2pyはテーブルを作成します:
db.define_table('web2py_session',
Field('locked', 'boolean', default=False),
Field('client_ip'),
Field('created_datetime', 'datetime', default=now),
Field('modified_datetime', 'datetime'),
Field('unique_key'),
Field('session_data', 'text'))
cPickledセッションをsession_dataフィールドに格納します。
オプションmasterapp=Noneは、デフォルトで、実行中のアプリケーションのrequest.applicationに名前が含まれるアプリケーションの既存のセッションを取得しようとするようにweb2pyに指示します。
2つ以上のアプリケーションでセッションを共有する場合は、masterappをマスターアプリケーションの名前に設定します。