Mike Looijmans
nlv11281 at natlab.research.philips.com
Tue Dec 5 01:21:14 EST 2006
Why not just re-read the file on every request? The caching you are doing now is also done by the operating system. You won't be really reading from disk when you do a read. Note that using: _html = f.read() is much more efficient than reading into an array and then joining the lines together - unless removing newline characters was what you had in mind (which I seriously doubt because it might mess up the text). In fact, a one-liner will do: return open('/var/www/html/carconsumption.com/index.html', 'r').read() % _d -- Mike Looijmans Philips Natlab / Topic Automation 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,
|