Skip to content

estj92/django-cache-manager

This branch is 2 commits behind coolshop-com/django-cache-manager:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

aeac342 · Oct 25, 2017

History

84 Commits
Oct 25, 2017
Nov 2, 2016
Jan 7, 2015
Dec 27, 2014
Nov 12, 2016
Nov 2, 2016
Jan 14, 2015
Jan 7, 2015
Nov 12, 2016
Jan 4, 2015
Jan 7, 2015
Jan 7, 2015
Nov 13, 2016
Jan 7, 2015
Dec 31, 2014
Dec 27, 2014
Nov 12, 2016
Dec 27, 2014

Repository files navigation

=============================== django-cache-manager

Simple cache manager for django models that caches querysets for a model. Cache manager will cache any query that has been seen for a model. Model cache is evicted for any updates/deletes to the model. This manager is useful for models that don't change often.

Build Status Coverage Status PyPI version

Installation

pip install django-cache-manager

Caching strategy

  • Cache results for a model on load.
  • Evict cache for model on update.

Usage

Add to installed apps

INSTALLED_APPS = (
    ...
    'django_cache_manager',
    ...
)

Define cache backend for django_cache_manager.cache_backend in settings.py. The backend can be any cache backend that implements django cache API.

CACHES = {
    'django_cache_manager.cache_backend': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
    }
}
from django_cache_manager.cache_manager import CacheManager
class MyModel(models.Model):

   #set cache manager as default
   objects = CacheManager()

Django shell

To run django shell with sample models defined in tests.

make shell

Sample models

from tests.models import Manufacturer
from tests.models import Car
from tests.models import Driver
m = Manufacturer(name='Tesla')
m.save()
c = Car(make=m, model='Model S', year=2015)
c.save()
d = Driver(first_name ='ABC', last_name='XYZ')
d.save()
d.cars.add(c)
drivers = Driver.objects.select_related('car', 'manufacturer').all()

Testing

To run tests

make test
Supported Django versions

Supported - 1.5, 1.6, 1.7, 1.8, 1.9, 1.10

About

Cache manager for django models

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 97.9%
  • Makefile 2.1%