|
Terry Macdonald
terry.macdonald at dsl.pipex.com
Sat Dec 2 13:25:35 EST 2006
Personally I use the excellent Cheetah template package.
I create template files and compile them to .py module files and import
then into my handlers/controllers and manipulate them there
so for a template page.tmpl, it compiles to page.py and in my
handler/controller...
page = apache_import('page').page
page.objectlist = db.getlistofobjects()
page.<var> = ... etc
<Any other business/app logic etc>
return page()
Very neat and simple and all your page structure is in separate
templates which will be reimported automatically when changed & compiled
by the new importer module. Before, I was restarting apache
On Sat, 2006-12-02 at 08:26 -0200, Clodoaldo wrote:
> I'm doing a very light templating in a publisher program.
>
> There is a html template read from the index.html file in which
> '%(variable)s' are replaced.
>
> This code reads the template from the file:
>
> f = open('/var/www/html/carconsumption.com/index.html', 'r')
> _html = ''.join(f.readlines())
> f.close()
>
> And then inside index() at return time the usual substitution:
>
> return C._html % _d
>
> Editing a file with the extension .html is nice with editors with html
> syntax highlighting, completion and other things. The only problem
> with this approach is that the file index.html is not reloaded when
> changed.
>
> I know i could just use a generic handler with PSP as templating. But
> the publisher is so convenient and as the new importer in 3.3 is full
> of tricks like importing modules with any extension i would like to
> know if there is some way to import a whole module into a variable
> value preventing it from being interpreted as python code.
>
> If the above is nonsense what would be a better approach for
> templating within publisher programs or just to solve the not
> reloadable index.html file?
>
> Regards,
|