From 6daaa6b1fa99139cf1661bd2ee830a79c4a8eedb Mon Sep 17 00:00:00 2001 From: Ori Pekelman Date: Thu, 21 Nov 2024 13:57:51 +0100 Subject: [PATCH] Minimal cache implementation --- coptic/coptic/settings/base.py | 20 ++++++++++---------- coptic/coptic/views.py | 9 ++++++--- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/coptic/coptic/settings/base.py b/coptic/coptic/settings/base.py index 0a400035..ef306058 100644 --- a/coptic/coptic/settings/base.py +++ b/coptic/coptic/settings/base.py @@ -33,18 +33,16 @@ 'mod_wsgi.server' ) -MIDDLEWARE_CLASSES = [ +MIDDLEWARE = [ 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', + 'django.middleware.cache.UpdateCacheMiddleware', + 'django.middleware.cache.FetchFromCacheMiddleware', ] -if django.VERSION[0] < 2: - MIDDLEWARE_CLASSES.append('django.contrib.auth.middleware.SessionAuthenticationMiddleware') -MIDDLEWARE = MIDDLEWARE_CLASSES # for django >= 1.10 - # for newer django TEMPLATES = [ @@ -61,11 +59,6 @@ } ] -# for older django -TEMPLATE_CONTEXT_PROCESSORS = ( - "django.core.context_processors.request", - "django.contrib.auth.context_processors.auth" -) ROOT_URLCONF = 'coptic.urls' @@ -105,6 +98,13 @@ }, } } +# Cache configuration +CACHES = { + 'default': { + 'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache', + 'LOCATION': '/tmp/django_cache', + } +} # Internationalization # https://docs.djangoproject.com/en/1.7/topics/i18n/ diff --git a/coptic/coptic/views.py b/coptic/coptic/views.py index f2778e45..f96fca40 100644 --- a/coptic/coptic/views.py +++ b/coptic/coptic/views.py @@ -5,6 +5,8 @@ from django.db.models import Q, Case, When, IntegerField, F from django.shortcuts import render, get_object_or_404, redirect from django.db.models.functions import Lower +from django.views.decorators.cache import cache_page +from django.core.cache import cache from texts.search_fields import get_search_fields from coptic.settings.base import DEPRECATED_URNS from collections import OrderedDict @@ -19,12 +21,13 @@ def keyvalue(dict, key): return dict.get(key) +@cache_page(60 * 15) def home_view(request): 'Home' context = _base_context() return render(request, 'home.html', context) - +@cache_page(60 * 15) def corpus_view(request, corpus=None): corpus_object = get_object_or_404(models.Corpus, slug=corpus) @@ -64,7 +67,7 @@ def corpus_view(request, corpus=None): }) return render(request, 'corpus.html', context) - +@cache_page(60 * 15) def text_view(request, corpus=None, text=None, format=None): text_object = get_object_or_404(models.Text, slug=text) if not format: @@ -157,7 +160,7 @@ def get_meta_values(meta): meta_values = [re.sub(HTML_TAG_REGEX, '', meta_value) for meta_value in meta_values] return meta_values - +@cache_page(60 * 15) def index_view(request, special_meta=None): context = _base_context()