Extended HTTP-caching for Django
Project description
Enhanced cache_page
decorator for Django views.
Compatibility
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.
Advantages
- fixed certain amount of bugs (including #15855)
- support of callable
cache_timeout
andkey_prefix
parameters - cache age can be limited by client (min cache age is manageable, default is 0)
Usage
from djangocache import cache_page @cache_page(cache_timeout=600) def view(request): pass
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!!' @cache_page(cache_timeout=600) @etag(etag_generator) def view(request, *args, **kwargs): pass
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.
Installation
pip install --upgrade django-cache
Project details
Release history Release notifications | RSS feed
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)