Gregory (Grisha) Trubetskoy
grisha at modpython.org
Tue Nov 25 21:45:35 EST 2003
One of the ways to use PSP, which probably isn't immediately obvious from the documentation, is as a templating system, e.g. configuring mod_python to use the publisher handler, then have something like: def hello(req): vars = {"menu": build_menu(), "blah": enormously_complex_function(), "body": psp.PSP(req, 'templates/body_tmpl.html')} return psp.PSP(req, 'templates/main_frame.html', vars=vars) In this example 'body_tmpl.html' and 'main_fram.html' are PSP. I've had pretty good luck with this approach precisely because it seems to have a clear separation of logic and presentation. Grisha On Mon, 24 Nov 2003, Michael S. Fischer wrote: > Dan W. wrote: > > > That's a good point Michael. That was probably a bad habit to pick up. > > However, I think a overloaded import could still be useful. Overloading > > the builtin import would allow a PSP file to control autoreloading for > > its entire dependency tree (modules which call other modules, etc.). > > This would allow one to easily turn autoreloading on during development > > and to easily turn it off for production deployment. > > Consider that you might want not to use PSP. I've actually found that > it gets in the way of the separation of code and content, which is > important when the designer and the coder are two different people. > > I design my mod_python apps like so: > > template = """ > <html> > ... > <!-- have the designers place %(variable)s where necessary > in the template for doing performing substitution > during the processing phase --> > </html> > """ > > def handler(req): > # Reload modules here if necessary > # Code goes here > # If you want to override the template, you can fetch it from the file > # system > req.write(template % vars()) > > Of course, if you're already married to the PSP solution, then there you > have it... > > --Michael > > _______________________________________________ > Mod_python mailing list > Mod_python at modpython.org > http://mailman.modpython.org/mailman/listinfo/mod_python >
|