1 #!/usr/bin/env python 2 3 "A simple application for test purposes." 4 5 import WebStack.Generic 6 7 class SimpleResource: 8 9 "A simple resource." 10 11 def respond(self, trans): 12 trans.set_content_type(WebStack.Generic.ContentType("text/html")) 13 14 # Get some information. 15 16 out = trans.get_response_stream() 17 out.write(""" 18 <html> 19 <head> 20 <title>Simple Example</title> 21 </head> 22 <body> 23 <h1>Test</h1> 24 <ul> 25 <li>Path: %s</li> 26 <li>Path info: %s</li> 27 <li>Query string: %s</li> 28 <li>Request method: %s</li> 29 <li>User: %s</li> 30 <li>Content type: %s</li> 31 <li>Charset: %s</li> 32 <li>Headers: 33 <dl> 34 %s 35 </dl> 36 </li> 37 <li>User-Agent: 38 <ul> 39 %s 40 </ul> 41 </li> 42 <li>user-agent: 43 <ul> 44 %s 45 </ul> 46 </li> 47 <li>Fields from path: 48 <ul> 49 %s 50 </ul> 51 </li> 52 <li>Fields from body: 53 <ul> 54 %s 55 </ul> 56 </li> 57 <li>Cookies: 58 <ul> 59 %s 60 </ul> 61 </li> 62 </ul> 63 </body> 64 </html> 65 """ % ( 66 trans.get_path(), 67 trans.get_path_info(), 68 trans.get_query_string(), 69 trans.get_request_method(), 70 trans.get_user(), 71 trans.get_content_type().content_type, 72 trans.get_content_type().charset, 73 self._format_dict(trans.get_headers()), 74 self._format_list(trans.get_header_values("User-Agent")), 75 self._format_list(trans.get_header_values("user-agent")), 76 self._format_dict(trans.get_fields_from_path()), 77 self._format_dict(trans.get_fields_from_body()), 78 self._format_cookies(trans.get_cookies()), 79 )) 80 81 def _format_dict(self, d): 82 return "".join([ 83 "<dt>%s</dt><dd>%s</dd>" % (key, value) 84 for key, value in d.items() 85 ]) 86 87 def _format_cookies(self, d): 88 return "".join([ 89 "<dt>%s</dt><dd>%s</dd>" % (key, value.value) 90 for key, value in d.items() 91 ]) 92 93 def _format_list(self, l): 94 return "".join([ 95 "<li>%s</li>" % value 96 for value in l 97 ]) 98 99 # vim: tabstop=4 expandtab shiftwidth=4