Django Request Cache provides a cache for each request (within your Django Request/Response cycle).
- Download and install using pip install
pip install django-request-cache- Add
UserForeignKeyMiddlewareandRequestCacheMiddlewareto yourMIDDLEWAREsettings like this:
MIDDLEWARE = ( ... 'django.contrib.auth.middleware.AuthenticationMiddleware', ... 'django_userforeignkey.middleware.UserForeignKeyMiddleware', 'django_request_cache.middleware.RequestCacheMiddleware', )or if you are still using the an older Django version (e.g., Django 1.8) with MIDDLEWARE_CLASSES:
MIDDLEWARE_CLASSES = ( ... 'django.contrib.auth.middleware.AuthenticationMiddleware', ... 'django_userforeignkey.middleware.UserForeignKeyMiddleware', 'django_request_cache.middleware.RequestCacheMiddleware', )- Use the per-request cache as a decorator
from django_request_cache import cache_for_request @cache_for_request def do_some_complex_calculation(a, b, c): print("Calculating... please wait") return a * b * cTry it out by executing do_some_complex_calculation multiple times within your request
RequestCache and RequestCacheMiddleware (see middleware.py) are from a source code snippet on StackOverflow https://stackoverflow.com/questions/3151469/per-request-cache-in-django/37015573#37015573 created by coredumperror https://stackoverflow.com/users/464318/coredumperror Original Question was posted by https://stackoverflow.com/users/7679/chase-seibert at https://stackoverflow.com/questions/3151469/per-request-cache-in-django copied on 2017-Dec-20