Django

Cache Django

Cache backends, per-view cache, template fragment cache, low-level cache API, cache invalidation

20 questions d'entretien·
Confirmé
1

Quel est le backend de cache par défaut dans Django si aucune configuration n'est spécifiée ?

Réponse

Django utilise par défaut le backend 'LocMemCache' (cache en mémoire locale) qui stocke les données dans le processus Python. Ce backend est simple et rapide mais ne persiste pas entre les redémarrages du serveur et ne partage pas les données entre différents processus. Il est adapté au développement mais pas recommandé pour la production multi-processus.

2

Quel décorateur utiliser pour mettre en cache la réponse complète d'une vue pendant 15 minutes ?

Réponse

Le décorateur cache_page de django.views.decorators.cache permet de mettre en cache la réponse HTTP complète d'une vue. Le paramètre est le temps en secondes (15 minutes = 900 secondes). La clé de cache est générée automatiquement à partir de l'URL et des paramètres de requête. Ce décorateur gère aussi les en-têtes HTTP appropriés.

3

Quelle est la syntaxe correcte du template tag pour mettre en cache un fragment de template pendant 5 minutes ?

Réponse

Le tag {% cache %} permet de mettre en cache un fragment de template. La syntaxe est {% cache timeout cache_name %}...{% endcache %}. Le premier argument est le temps en secondes (300 pour 5 minutes), le second est un nom unique pour identifier ce fragment. Des arguments supplémentaires peuvent être ajoutés pour varier le cache (ex: user.id).

4

Comment récupérer une valeur du cache avec une valeur par défaut si la clé n'existe pas ?

5

Quel backend de cache est recommandé pour une application Django en production avec plusieurs instances ?

+17 questions d'entretien

Maîtrise Django pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement