OUJOOD.COM
La rapidité d'un site est un facteur déterminant pour l'expérience utilisateur et le référencement. À chaque fois qu'un visiteur demande une page, Django doit interroger la base de données et générer le HTML. Si votre site reçoit beaucoup de trafic, cela peut saturer votre serveur. Le cache permet de mémoriser le résultat d'une opération coûteuse pour le resservir instantanément la fois suivante.
Pourquoi mettre en cache ?
L'idée est simple : ne faites pas deux fois le même travail. Si vous avez une liste de produits qui ne change qu'une fois par jour, il est inutile de demander à la base de données de la reconstruire à chaque seconde. En stockant cette liste dans le cache, vous divisez le temps de réponse par dix, voire par cent.
Les différents types de cache
Django est très souple et peut stocker ses données à plusieurs endroits selon vos besoins :
- Memcached ou Redis : Les solutions les plus rapides, utilisant la mémoire vive (RAM).
- Base de données : Pratique si vous n'avez pas accès à un serveur de cache dédié.
- Système de fichiers : Stocke les données dans des fichiers locaux sur le serveur.
- Mémoire locale : Uniquement pour le développement (le cache disparaît au redémarrage du serveur).
Configuration de base
Tout se passe dans le fichier settings.py. Voici comment configurer un cache simple utilisant le système de fichiers, ce qui est un bon point de départ pour tester l'efficacité sur votre propre projet.
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
'LOCATION': '/var/tmp/django_cache',
}
}
Mettre en cache une vue entière
C'est la méthode la plus radicale et la plus simple. En ajoutant un décorateur à votre vue, vous dites à Django de garder la page entière en mémoire pendant une durée déterminée (en secondes).
from django.views.decorators.cache import cache_page @cache_page(60 * 15) # La page est gardée 15 minutes def ma_vue_lente(request): # Calculs longs ou requêtes lourdes ici return render(request, 'ma_page.html')
Le cache est un outil formidable, mais attention à l'invalidité des données : si vous mettez en cache une page de profil et que l'utilisateur change son nom, il ne verra pas la modification immédiatement. Il faut savoir doser.
Après avoir optimisé la vitesse, nous allons voir comment communiquer directement avec vos utilisateurs par un autre canal : l'envoi d'emails avec Django.
Par carabde | Mis à jour le 08/05/2026