Torndsession
Torndsession is a tornado web framework session extension.
Install / Use
/learn @MitchellChu/TorndsessionREADME
Torndsession Session
Torndsession <https://github.com/MitchellChu/torndsession>_ is a session extension for Tornado <https://github.com/tornadoweb/tornado>__ web framework.
Torndsession support application memory, file, redis or memcached to save session data for request, and it's easy to extend for developer.
Quick links
-
Documentation <http://blog.useasp.net/category/30.aspx>_ -
Source (github) <https://github.com/MitchellChu/torndsession>_ -
Torndsession License <https://raw.githubusercontent.com/MitchellChu/torndsession/master/LICENSE>_ -
Examples <https://github.com/MitchellChu/torndsession/tree/master/demos>_
Hello, Session
Here is a simple "Hello, Session" example web app for Tornado with Torndsession.::
import tornado.web
import tornado.httpserver
import tornado.ioloop
import torndsession
class Application(tornado.web.Application):
def __init__(self):
handlers = [
(r"/", MainHandler),
]
settings = dict(
debug=True,
)
# sid_name, lifetime added in 1.1.5.0
# sid_name: the name of session id in cookies.
# lifetime: session default expires seconds.
session_settings = dict(
driver='memory',
driver_settings={'host': self},
force_persistence=True,
sid_name='torndsessionID',
session_lifetime=1800
),
settings.update(session=session_settings)
tornado.web.Application.__init__(self, handlers, **settings)
class MainHandler(torndsession.sessionhandler.SessionBaseHandler):
def get(self):
self.write("Hello, Session.<br/>")
if 'data' in self.session:
data = self.session['data']
else:
data = 0
self.write('data=%s' % data)
self.session["data"] = data + 1
def main():
http_server = tornado.httpserver.HTTPServer(Application())
http_server.listen(8000)
tornado.ioloop.IOLoop.instance().start()
if __name__ == "__main__":
main()
In this example, Request handler obtain memory session feature, it just inherit from SessionBaseHandler. more session example see torndsession demos <https://github.com/MitchellChu/torndsession/tree/master/demos>_.
Installation
Automatic installation:
::
pip install torndsession
Torndsession is listed in PyPI <https://pypi.python.org/pypi/torndsession>__ and can be installed with pip or easy_install. Note that this installation can not install demos applicatinos which be included in source code.
The another way is use git+ install torndsession from github.
::
pip install git+https://github.com/mitchellchu/torndsession
Manual installation:
In this way, you need download the source from PyPI <https://pypi.python.org/pypi/torndsession>__.::
tar xvzf torndsession.tar.gz
cd torndsession
python setup.py build
sudo python setup.py install
The Torndsession source code is hosted on GitHub <https://github.com/MitchellChu/torndsession>_.
Updated
Torndsession 1.1.5:
-
fixed bug in 1.1.4
-
default session id value generator changed. see
#ISSUE 12# <https://github.com/MitchellChu/torndsession/issues/12>_. -
added two custom key in settings.
- sid_name: session's cookie name.
- session_lifetime: default expired seconds for session.
Torndsession 1.1.4:
- fixed bug
Torndsession 1.1.3 fixed some bug and supported python 3.x.
Requires
Tornado <https://github.com/tornadoweb/tornado>__Redis (Optional) <http://redis.io/>_Memcached (Optional) <http://memcached.org/>_
LICENSE
Torndsession is licensed under MIT.
Related Skills
node-connect
353.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
111.6kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
111.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
353.1kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
