Session¶
Firenado provides a session layer supporting redis or files backends.
To setup the application session it is necessary configure the session section into the firenado.yml file.
Setting up a redis based session:
session:
type: redis
enabled: true
data:
source: session
Setting up a file based session:
session:
type: file
enabled: true
path: /tmp
Once a session is set and enabled the developer can persist or retrieve session data in the handler.
class SessionCounterHandler(firenado.tornadoweb.TornadoHandler):
def get(self):
reset = self.get_argument("reset", False, True)
if reset:
# Deleting a session variable
self.session.delete('counter')
self.redirect(self.get_rooted_path("/session/counter"))
return None
counter = 0
# Checking if a variable is set in the session
if self.session.has('counter'):
# Retrieving a value from the session
counter = self.session.get('counter')
counter += 1
# Setting a value in the session
self.session.set('counter', counter)
self.render("session.html", session_value=counter)