[mod_python] obtaining html txt from psp template

Detmar Meurers dm at julius.ling.ohio-state.edu
Tue Sep 5 19:29:44 EDT 2006


Hi Graham,

Thank you for the pointer to Jim Gallacher's posting, which was very
close to what I was looking for.  I modified it to get a simple
string result - the resulting code is included below, in case others
are interested.

Best,
Detmar


# Example code for turning psp template into html string, based on
# http://www.modpython.org/pipermail/mod_python/2006-June/021292.html

from mod_python import _psp

def psp2html(filename,vars={}):
     req = FakeRequestObject()
     vars['req'] = req
     source = _psp.parse(filename)
     code = compile(source, filename, 'exec')
     global_scope = globals().copy()
     global_scope.update(vars)
     exec code in global_scope
     return req.html()

class FakeRequestObject(object):
     def __init__(self):
          self.htmlList = []

     def write(self, value, length):
         self.htmlList.append(value)

     def html(self):
	 return " ".join(self.htmlList)

if __name__ == "__main__":
    print psp2html('template_file.psp',  {'var_in_psp1': 'some value' ,
                                          'var_in_psp2': 'another value'})

### end of python file

For completeness sake, the template_file.psp mentioned above looks as:

<html>
<head>
      <title>
      <%= var_in_psp1 %>
      </title>
</head>

<body>
      <%= var_in_psp2 %>
</body>
</html>


More information about the Mod_python mailing list