Caching
Cache au niveau de la page
from django.views.decorators.cache import cache_page
@cache_page(60 * 15) # Cache for 15 minutesdef product_list(request): products = Product.objects.all() return render(request, 'products/list.html', {'products': products})
Cache au niveau du template
{% load cache %}
{% cache 500 sidebar request.user.id %} {% for item in expensive_query %} {{ item }} {% endfor %}{% endcache %}
Cache au niveau du code
from django.core.cache import cache
def get_expensive_result(user_id): cache_key = f'expensive_result_{user_id}' result = cache.get(cache_key)
if result is None: result = expensive_computation(user_id) cache.set(cache_key, result, timeout=3600)
return result