Skip to main content

Extended HTTP-caching for Django

Project description

Enhanced cache_page decorator for Django views.


Django-cache properly works with Django 1.8, 1.9, 1.10 and 1.11 on Python 2.7, 3.4, 3.5 and 3.6.


  • fixed certain amount of bugs (including #15855)

  • support of callable cache_timeout and key_prefix parameters

  • cache age can be limited by client (min cache age is manageable, default is 0)


from djangocache import cache_page

def view(request):

Combination with last_modified and/or etag view decorators

If you planning to use cache_page among with last_modified and/or etag the latter must be placed after cache_page:

from djangocache import cache_page
from django.views.decorators.http import last_modified, etag

def etag_generator(request, *args, **kwargs):
    return 'ETag!!'

def view(request, *args, **kwargs):

Django Settings

DJANGOCACHE_MIN_AGE - used to set minimal age of cache. Default is 0, meaning that client can ask server to skip cache by providing header Cache-Control: max-age=0.

@cache_page params

  • cache_timeout. Default is settings.CACHE_MIDDLEWARE_SECONDS.

  • key_prefix. Default is settings.CACHE_MIDDLEWARE_KEY_PREFIX.

  • cache_alias. Default is settings.CACHE_MIDDLEWARE_ALIAS, or settings.DEFAULT_CACHE_ALIAS if set to None.

  • cache_min_age. Default is settings.DJANGOCACHE_MIN_AGE.


pip install --upgrade django-cache

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-cache-0.3.tar.gz (4.7 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page