# HG changeset patch # User paulb # Date 1082331564 0 # Node ID ed2b2361ee48c1a6c34c3740388f7a5472ea5867 # Parent 4fabce58a98110fd911a480716fe6b7fd1e5d76e [project @ 2004-04-18 23:39:24 by paulb] Added an example of cookie manipulation. diff -r 4fabce58a981 -r ed2b2361ee48 examples/Common/Cookies/__init__.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/examples/Common/Cookies/__init__.py Sun Apr 18 23:39:24 2004 +0000 @@ -0,0 +1,77 @@ +#!/usr/bin/env python + +"A test of cookies." + +import WebStack.Generic +import time + +class CookiesResource: + + "A resource adding and removing cookies." + + 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() + + cookie_name_list = fields.get("name") or ["test"] + cookie_value_list = fields.get("value") or ["test"] + cookie_path_list = fields.get("path") or ["/"] + cookie_expires_list = fields.get("expires") or ["60"] + + cookie_name = cookie_name_list[0] + cookie_value = cookie_value_list[0] + cookie_path = cookie_path_list[0] + cookie_expires = int(cookie_expires_list[0]) + + message = "No action taken - use add or delete to change the cookies." + + if fields.has_key("add"): + trans.set_cookie_value( + cookie_name, + cookie_value, + cookie_path, + time.time() + cookie_expires + ) + message = "Cookie %s added!" % cookie_name + + elif fields.has_key("delete"): + trans.delete_cookie(cookie_name) + message = "Cookie %s deleted!" % cookie_name + + # Get some information. + + out = trans.get_response_stream() + out.write(""" + + + Cookies Example + + +

Cookies

+

%s

+ + + +""" % ( + message, + self._format_dict(trans.get_cookies()), +)) + + def _format_dict(self, d): + return "".join([ + "
%s
%s
" % (key, value) + for key, value in d.items() + ]) + + def _format_list(self, l): + return "".join([ + "
  • %s
  • " % value + for value in l + ]) + +# vim: tabstop=4 expandtab shiftwidth=4