Base class for persistent session stores.
Persistent Session
storage API for session3’s SessionManager
.
Subclass this class & provide implementations of load_session
,
save_session
, and delete_session
, and voila, persistent sessions!
class SessionStore:
is_multiprocess_safe = False
is_thread_safe = False
def load_session(self, id, default=None):
raise NotImplementedError()
Save the session in the store.
def save_session(self, session):
raise NotImplementedError()
Delete the session in the store.
def delete_session(self, session):
raise NotImplementedError()
Return true if the session exists in the store, else false.
def has_session(self, id):
return self.load_session(id, None)
def iter_sessions(self):
Return an iterable of (id, session) for all sessions in the store.
This method is never called by the session manager; it’s for admin applications that want to browse the sessions.
raise NotImplementedError()
Initialize the session store; e.g., create required database tables. If a previous store exists, overwrite it or raise an error. The default implmenetation does nothing, meaning no setup is necessary.
This method is never called by the session manager; it’s for your application setup program.
def setup(self):
pass
Delete all sessions that have not been modified for N minutes. The default implementation does nothing, meaning the store cannot delete old sessions.
This method is never called by the session manager. It’s for your application maintenance program; e.g., a daily cron job.
def delete_old_sessions(self, minutes):
pass