Caching per vista e per sito
Mettere in cache intere pagine con i decorator
Caching per vista e per sito è una lezione Django Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Django Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Django Academy include 4 lezioni in totale.
Memorizzare nella cache l'intera pagina
A volte generare un'intera pagina è costoso. Django può memorizzare l'intera response renderizzata e riproporla al visitatore successivo.
Il decorator cache_page
Avvolga una view in cache_page e Django memorizzerà nella cache il suo output completo per il numero di secondi specificato.
from django.views.decorators.cache import cache_page
@cache_page(60 * 15)
def article_list(request):
...Cosa memorizza la cache per view
La cache per view conserva la HttpResponse solo per quella view, quindi solo le pagine a cui applica il decorator ottengono questo incremento di velocità.
Caching nel file URLconf
Può applicare cache_page anche in urls.py senza modificare la view, una soluzione utile per le view che non gestisce direttamente.
path("news/", cache_page(60)(news_view))Caching per sito
Per memorizzare nella cache quasi tutte le pagine in una volta sola, Django offre il per-site caching, gestito da due classi middleware anziché dai decorator.
I due middleware
Aggiunga UpdateCacheMiddleware all'inizio dell'elenco e FetchFromCacheMiddleware alla fine, affinché il caching per sito funzioni.
MIDDLEWARE = [
"django.middleware.cache.UpdateCacheMiddleware",
"...your middleware...",
"django.middleware.cache.FetchFromCacheMiddleware",
]I secondi della cache del sito
Imposti CACHE_MIDDLEWARE_SECONDS per controllare per quanto tempo ogni pagina memorizzata nella cache rimane aggiornata sull'intero sito.
CACHE_MIDDLEWARE_SECONDS = 600Solo GET e HEAD
Entrambe le strategie memorizzano nella cache solo le richieste sicure GET e HEAD, quindi l'invio dei form e le altre richieste POST non vengono mai serviti dalla cache.
Non memorizzare mai nella cache le pagine private
Eviti il caching nelle pagine specifiche per l'utente con never_cache, perché una dashboard non deve mai divulgare i dati di un'altra persona.
from django.views.decorators.cache import never_cache
@never_cache
def dashboard(request):
...Gli header Vary sono importanti
Usi vary_on_headers per consentire a una pagina memorizzata nella cache di variare in base a dettagli della richiesta, come la lingua o il dispositivo, mantenendo la versione corretta per ogni visitatore.
Scelga l'ambito corretto
Scelga il per-view caching quando solo alcune pagine pesanti necessitano di un miglioramento, e il caching per sito quando quasi tutto il contenuto è in sola lettura.
Verifica rapida
Chiariamo come Django decide cosa memorizzare nella cache.
Riepilogo
Ha imparato a usare cache_page per singole view e il cache middleware per l'intero sito, oltre a never_cache per proteggere le pagine private. 🚀
Impara Python con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 30
- Lezioni
- 120
Domande Frequenti
La lezione «Caching per vista e per sito» è gratuita?
Sì — il testo completo di «Caching per vista e per sito» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Django Academy, passa a CoddyKit PRO. Il corso Django Academy include 4 lezioni in totale.
Cosa imparerò in «Caching per vista e per sito»?
Mettere in cache intere pagine con i decorator Eserciti Django Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Django Academy?
Non è richiesta alcuna esperienza precedente. Django Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Caching per vista e per sito»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Django Academy?
Sì. Ogni lezione Django Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Backend di cache e Redis
- Caching per vista e per sito
- Caching dei frammenti di template
- API cache di basso livello e invalidazione