Кэширование для приложения в Django, а не для сайта или просмотра

Допустим, на моем сайте 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", а все другие запросы использовали кэш "по умолчанию"?

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

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

0 ответов

Другие вопросы по тегам