[Twisted-web] about macro and render
Valentino Volonghi aka Dialtone
dialtone at divmod.com
Wed Feb 21 05:44:25 CST 2007
On Wed, 21 Feb 2007 12:32:08 +0100, Manlio Perillo <manlio_perillo at libero.it> wrote:
>Hi.
>
>I want to compose a page, using a main template.
>A simple solution is to use macros
>
>class Resource(rend.rend):
> def macro_main(self, ctx):
> return loaders.xmlfile(...)
>
>
>The macro_main method is called only once.
>
>However it seems that macros are going to be removed, moreover if I change
Not to my knowledge, at least I'd be opposed/incline to re-implement them
because I use them extensively in all my projects.
>the child template, I have to reload the server.
Not really... just change the macro too with something like touch.
>A solution is to use a render (code not tested):
>
>class Resource(rend.rend):
> template = ... # The child template to load
>
> def macro_main(self, ctx):
> return self.state.setdefault(
> template, loaders.xmlfile(self.template)
> )
>
>
>Here I'm storing the loader instance in a dictionary, to optimize template
>loading.
Useless, loaders already have a cache.
>Is this solution as efficient as the one with macros?
macros are not a way to cache stuff, but to compose stuff dynamically at pre-compile time.
More information about the Twisted-web
mailing list