Кэширование для приложения в Django, а не для сайта или для просмотра - PullRequest
0 голосов
/ 21 января 2019

Допустим, на моем сайте Django есть два приложения, одно для API и одно для html-страниц, все URL-адреса, начинающиеся с / api /, обрабатываются приложением API.Я настроил два кеша с определенной настройкой для каждого, например, так:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
        'LOCATION': 'page_cache',
        'TIMEOUT': 7200,
        'OPTIONS': {
            'MAX_ENTRIES': 300,
        }
    },
    'api': {
        'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
        'LOCATION': 'api_cache',
        'TIMEOUT': 3600,
        'OPTIONS': {
            'MAX_ENTRIES': 3000,
        }
    }
}

Как мне настроить так, чтобы все запросы к API использовали кэш 'api', а все другие запросы использовали кеш 'default'?

Я знаю, что могу использовать функцию / декоратор cache_page в URL-адресах или представлениях приложений api, но у меня много URL-адресов и представлений, так что это будет раздражать, если я захочу, например, изменить время ожидания,

Мне также известно, что я мог бы просто настроить промежуточное ПО так, чтобы оно указывало на другой кэш, когда запрос начинается с '/ api /', но нет ли более чистого способа сделать это?

...