On Wed, Nov 11, 2009 at 8:15 PM, Mike Malone <[email protected]> wrote: > Sup, > > I've been working on template caching (ticket #6262) with a mister > Alex Gaynor. The patch is getting pretty stable and I think it's close > to merge-able, so if anyone wants to take a look at what we've got and > provide feedback: go! > > Interesting background reading for people who haven't been part of > this conversation: > http://groups.google.com/group/django-developers/browse_thread/thread/b289b871285b86f5/b97ba9e2e9b9ad86 > > Ticket: http://code.djangoproject.com/ticket/6262 > > Latest patch: > http://code.djangoproject.com/attachment/ticket/6262/cache_templates.5.diff > > The more code reviewers the better, but if you don't have time to read > through the nitty gritty here's a high level overview of the changes: > > 1. The workhorse django.template.loader.get_template() function will > now return compiled Template objects directly if a template loader > returns one (where a Template object is defined as something with a > render() method). > 2. A RenderContext has been added to Context instances. This is > necessary so we can give template.Node instances a thread-safe place > to store state between calls to Node.render(). > 3. The built-in template tags were updated to use the render context > (specifically, CycleNode, BlockNode, and ExtendsNode). > 4. A caching loader has been added to the set of default loaders. To > use it, you instantiate the loader, passing a list of other loaders > that it should wrap. The first time you ask the loader for a template > it'll go through the wrapped loaders and find it, then cache it in > memory. Subsequent requests for the same template are served from > cache. Hazzah! > > The patch is pretty complete, it includes tests and docs, so please > take a look! I stuck the updated docs up on my website temporarily, so > if you want to take a look at them in a slightly more readable format > you can check out these URLs: > http://immike.net/django-docs/ref/templates/api.html#loader-types > http://immike.net/django-docs/howto/custom-template-tags.html#template-tag-thread-safety > http://immike.net/django-docs/ref/templates/api.html#using-an-alternative-template-language > > Thanks, > > Mike > > -- > > You received this message because you are subscribed to the Google Groups > "Django developers" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/django-developers?hl=. > > >
As Mike said I've been reviewing this patch and I'm basically happy with it's current state. My one thought was whether to add a CACHE_TEMPLATE_LOADERS setting, and any loaders in that are cached by the CachedLoader (assuming it's instantiated with no arguments, it'll still be possible to explicitly instantiate it with loaders). Alex -- "I disapprove of what you say, but I will defend to the death your right to say it." -- Voltaire "The people's good is the highest law." -- Cicero "Code can always be simpler than you think, but never as simple as you want" -- Me -- You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/django-developers?hl=.
