0Pricing
Django Academy · Lección

Caché por vista y por sitio

Almacene páginas completas en caché con decoradores

Caché por vista y por sitio es una lección gratuita de Django Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Django Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Django Academy incluye 4 lecciones en total.

Partes de esta lección aún no han sido traducidas y se muestran en inglés.

Cache the Whole Page

Sometimes a full page is expensive to build. Django can store the entire rendered response and replay it for the next visitor.

The cache_page Decorator

Wrap a view in cache_page and Django caches its full output for the number of seconds you pass in.

from django.views.decorators.cache import cache_page

@cache_page(60 * 15)
def article_list(request):
    ...

What Per-View Caching Stores

Per-view caching keeps the HttpResponse for that view only, so just the pages you decorate get this speedup.

Caching in the URLconf

You can also apply cache_page in urls.py without touching the view, useful for views you do not own.

path("news/", cache_page(60)(news_view))

Per-Site Caching

To cache nearly every page at once, Django offers per-site caching driven by two middleware classes instead of decorators.

The Two Middleware

Add UpdateCacheMiddleware at the top of the list and FetchFromCacheMiddleware at the bottom for per-site caching to work.

MIDDLEWARE = [
    "django.middleware.cache.UpdateCacheMiddleware",
    "...your middleware...",
    "django.middleware.cache.FetchFromCacheMiddleware",
]

The Site Cache Seconds

Set CACHE_MIDDLEWARE_SECONDS to control how long every cached page stays fresh across the whole site.

CACHE_MIDDLEWARE_SECONDS = 600

Only GET and HEAD

Both strategies cache only safe GET and HEAD requests, so form submissions and other POSTs are never served from cache.

Never Cache Private Pages

Skip caching on user-specific pages with never_cache, since a dashboard must never leak another person's data.

from django.views.decorators.cache import never_cache

@never_cache
def dashboard(request):
    ...

Vary Headers Matter

Use vary_on_headers so a cached page can differ by request details like language or device, keeping the right copy per visitor.

Pick the Right Scope

Reach for per-view caching when only a few heavy pages need help, and per-site when almost everything is read-only.

Quick Check

Let's nail down how Django decides what to cache.

Recap

You learned cache_page for single views and the cache middleware for the whole site, plus never_cache to protect private pages. 🚀

Preguntas frecuentes

¿La lección «Caché por vista y por sitio» es gratis?

Sí — el texto completo de «Caché por vista y por sitio» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Django Academy, actualiza a CoddyKit PRO. El curso de Django Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Caché por vista y por sitio»?

Almacene páginas completas en caché con decoradores Practicas Django Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Django Academy?

No se requiere experiencia previa. Django Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Caché por vista y por sitio»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Django Academy?

Sí. Cada lección de Django Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Backends de caché y Redis
  2. Caché por vista y por sitio
  3. Caché de fragmentos de plantilla
  4. API de caché de bajo nivel e invalidación
← Volver a Django Academy