[Python] [django] max_age cache control dinamico

Manlio Perillo manlio.perillo a gmail.com
Mar 15 Gen 2013 14:46:14 CET


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Il 15/01/2013 14:23, Andrea Ambu ha scritto:
> Ciao!
> 
> Dunque si puo` facilmente controllare la max_age per una view cosi`:
> 
> """""""""""
> from django.views.decorators.cache import cache_control
> 
> @cache_control(max_age=3600)
> def my_view(request):
>     # ...
> 
> """""""""""
> 
> Ma se volessi che il valore di max_age venga deciso _dentro_ my_view
> come posso fare?
> 

Dovresti leggere la specifica del protocollo HTTP, se vuoi sviluppare
applicazioni web:
http://tools.ietf.org/html/rfc2616#section-14.9

Mi aspetto (ed č cosė) che il middleware di Django onori l'header
Cache-Control, magari (ma non č cosė) con una estensione per limitare il
caching internamente (e non inviare l'header al client).

Nel dubbio basta leggere il codice sorgente:
django/views/decorators/cache.py
e
django/utils/cache.py

> Per esempio:
> """""""""""
> def my_view(request):
>     if is_good_to_keep_in_cache_for_a_bit(request):
          request['Cache-Control'] = 'max-age=3600'
>         # set max_age to 36000
>     else:
>         # set max_age to 42 
          request['Cache-Control'] = 'max-age=42'
>     # ... 
> """""""""""
> 

Ciao  Manlio
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAlD1XaYACgkQscQJ24LbaUSkBgCdGpfyolXjBbyVcQsoK4lpG1MU
x0oAn0kWgfUSCjNyrCSltZf9oeYAWtZl
=PQeC
-----END PGP SIGNATURE-----


Maggiori informazioni sulla lista Python