[mod_python] psp templates problem

Graham Dumpleton grahamd at dscpl.com.au
Mon Nov 14 20:58:29 EST 2005


Bjorn Sundberg wrote ..
> Hello i'm quite new to mod_python. I've read the documents on the net and
> i
> found that the templating system is quite interesting. My problem is that
> i'm trying to load dynamic data in a template. And when the program runs
> it
> loads and repeat the template file and the variables that i want to change.
> So far so good, but i'm only intrested in changing the psp variables in
> the
> file. It seem's that i is not possible to use the <%# Stop %> to prevent
> the
> <p> to repeat. Any body that have any ideas? Thanks in advance.
> 
> Regards
> Björn S
> --Code--
> #!/usr/bin/env python
> from mod_python import psp
> 
> def index(req):
> req.add_common_vars()
> req.content_type='text/html;charset=utf-8'
> tmpl = psp.PSP(req, filename='3-2.html')
> for key in req.subprocess_env.keys():
> tmpl.run(vars = {'key': key, 'env': req.subprocess_env[key]})

This is going to render the template multiple times, you probably just want:

from mod_python import psp

def index(req):
  req.add_common_vars()
  req.content_type='text/html;charset=utf-8'
  tmpl = psp.PSP(req, filename='3-2.html')
  #for key in req.subprocess_env.keys():
  #  tmpl.run(vars = {'key': key, 'env': req.subprocess_env[key]})
  tmpl.run()


> --end--
> ---template---
> <html>
> <head>
> <title>
> 3-2.py
> </title>
> </head>
> <body>
> <table >
> <td><%=key %></td>
> <td><%=env %></td>
> </tr>
> </table>
> <p>test</p>
> </body>
> </html>

Then in your template use:

<html>
  <head>
    <title>
      3-2.py
    </title>
  </head>
  <body>
    <table >
<%
for key in req.subprocess_env.keys():
      # indent
%>  
      <tr>
        <td><%=key%></td>
        <td><%=req.subprocess_env[key]%></td>
      </tr>
<%
# end for
%>
    </table>
  <p>test</p>
</body>
</html>

Watch out for indenting issues.

Graham


More information about the Mod_python mailing list