¿Cómo accedo al caché de plantillas? – Django

Estoy almacenando en caché html dentro de unas pocas plantillas, por ejemplo:

{% cache 900 stats %} {{ stats }} {% endcache %} 

¿Puedo acceder a la memoria caché utilizando la biblioteca de bajo nivel ? p.ej

 html = cache.get('stats') 

Realmente necesito tener algún control preciso sobre el almacenamiento en caché de plantillas 🙂


¿Algunas ideas? ¡Gracias a todos! :RE

Así es como accedo al caché de plantillas en mi proyecto:

 from django.utils.hashcompat import md5_constructor from django.utils.http import urlquote def someView(request): variables = [var1, var2, var3] hash = md5_constructor(u':'.join([urlquote(var) for var in variables])) cache_key = 'template.cache.%s.%s' % ('table', hash.hexdigest()) if cache.has_key(cache_key): #do some stuff... 

La forma en que uso la etiqueta de cache , tengo:

  {% cache TIMEOUT table var1 var2 var3 %} 

Probablemente solo necesitas pasar una lista vacía a las variables . Entonces, tus variables y la key caché se verán así:

  variables = [] hash = md5_constructor(u':'.join([urlquote(var) for var in variables])) cache_key = 'template.cache.%s.%s' % ('stats', hash.hexdigest()) 

Mirando el código para el templatetag del cache , la clave se genera así:

 args = md5_constructor(u':'.join([urlquote(resolve_variable(var, context)) for var in self.vary_on])) cache_key = 'template.cache.%s.%s' % (self.fragment_name, args.hexdigest()) 

por lo que podría crear algo similar en su vista para obtener el caché directamente: en su caso, no está utilizando ningún parámetro vary_on , por lo que podría usar un argumento vacío para md5_constructor .