Torndsession is a session extension for 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.
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.
Automatic installation:
pip install torndsession
Torndsession is listed in PyPI 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.:
tar xvzf torndsession.tar.gz cd torndsession python setup.py build sudo python setup.py install
The Torndsession source code is hosted on GitHub.
Torndsession 1.1.5:
- fixed bug in 1.1.4
- default session id value generator changed. see #ISSUE 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.
Torndsession is licensed under MIT.