from mod_python import apache, Session from genshi.template import TemplateLoader, TemplateNotFound from genshi import ParseError def findtemplate(uri): templates = {"/" : "index.xml"} if uri in templates: return templates[uri] return None def handler(req): session = Session.Session(req) try: session['hits'] += 1 except: session['hits'] = 1 session.save() template = findtemplate(req.uri) if template: loader = TemplateLoader([req.document_root()]) try: req.content_type = "text/html; charset=UTF-8" tmpl = loader.load(template) stream = tmpl.generate(title='Hello World: Reloaded', hits=session['hits']) pagebuffer = stream.render('xhtml') except TemplateNotFound, tnf: req.content_type = "text/plain; charset=UTF-8" pagebuffer = str(tnf) except ParseError, pe: req.content_type = "text/plain; charset=UTF-8" pagebuffer = str(pe) #pagebuffer = "Hits: %d\n" % session['hits'] #pagebuffer += "Yippieh: I found %s -> %s!" % (req.uri, template) req.write(pagebuffer) return (apache.OK) return (apache.HTTP_NOT_FOUND)