# HG changeset patch # User paulb # Date 1093552658 0 # Node ID 6394cd977ce3fe954463f18fe2fea390635089a4 # Parent e9593916fb23d647a127a0f98310352aa0e4e8f7 [project @ 2004-08-26 20:37:38 by paulb] Added a helper module for session support. diff -r e9593916fb23 -r 6394cd977ce3 examples/Common/Sessions/__init__.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/examples/Common/Sessions/__init__.py Thu Aug 26 20:37:38 2004 +0000 @@ -0,0 +1,80 @@ +#!/usr/bin/env python + +"A test of sessions." + +import WebStack.Generic + +class SessionsResource: + + "A resource adding and expiring sessions." + + def respond(self, trans): + trans.set_content_type(WebStack.Generic.ContentType("text/html")) + + # Get the fields and choose an action. + + fields = trans.get_fields_from_path() + + # Get the session, creating one if appropriate. + + create = fields.has_key("create") + session = trans.get_session(create) + message = "No action taken - use expire, add and delete to edit sessions." + + # If a session exists, perform editing operations. + + if session: + names = fields.get("name") or ["test"] + values = fields.get("value") or ["test"] + name = names[0] + value = values[0] + + if fields.has_key("add"): + session[name] = value + message = "Attribute %s added!" % name + + elif fields.has_key("delete"): + del session[name] + message = "Attribute %s deleted!" % name + + elif fields.has_key("expire"): + trans.expire_session() + message = "Session expired!" + else: + message = "No session present - use create to add one." + + # If a session exists, get its contents. + + if session: + session_items = session.items() + else: + session_items = [] + + # Get some information. + + out = trans.get_response_stream() + out.write(""" + + + Session Example + + +

Session Details

+

%s

+ + + +""" % ( + message, + self._format_attributes(session_items), +)) + + def _format_attributes(self, items): + return "".join([ + "
%s
%s
" % (key, value) + for key, value in items + ]) + +# vim: tabstop=4 expandtab shiftwidth=4