2009-11-23 7 views
5

Come posso confermare le mie opinioni Django vengono memorizzate nella cache quando uso il decoratore cache_page in questo modo:Django cache_page controllo

@cache_page(60) 
def my_view(request): 

Idealmente mi piacerebbe uscita della cache hit/messaggi mancare nella console in modo posso confermare mio punto di vista è stato memorizzato nella cache per 60 secondi ecc

Molte grazie, g

risposta

5

si potrebbe prendere una copia di django-debug-toolbar (http://github.com/robhudson/django-debug-toolbar) e guardare le query: se la pagina non viene tirato dalla cache, django-debug-toolbar dovrebbe visualizzare tutte le query necessarie per assemblare la tua pagina. se la pagina viene estratta dalla cache, non verranno visualizzate le query.

È inoltre possibile aggiungere la registrazione al particolare involucro della cache che si sta utilizzando, quindi fare riferimento all'output nel pannello "registrazione" di django-debug-toolbar. Ecco un esempio di ciò che sarebbe simile: http://gist.github.com/242011

Consiglio anche afferrare una copia di django-memcache-status (http://github.com/bartTC/django-memcache-status) e memcache-top (http://code.google.com/p/memcache-top/), se siete interessati a monitorare l'utilizzo memcache in dettaglio.

+0

aha! Questo e 'esattamente quello che stavo cercando. Grazie. – givp

+1

L'essenza è inattiva, ecco perché dovresti incollare il codice qui. –

1

seconda del middleware di cache che si utilizza, è possibile esaminare il metodo di quella classe process_request e trovare qualche linea di come questi (preso fr om django/middleware/cache.py)

131 response = cache.get(cache_key, None) 
132 if response is None: 
133  ... 

...  logging.debug("Cache miss") 
... 
... else: 
...  logging.debug("Cache hit") 

e registrare i messaggi da lì. Devo ammettere, non è un modo pulito per farlo.

Problemi correlati