2

假设我的 Django 网站中有两个应用程序,一个用于 API,一个用于 html 页面,所有以 /api/ 开头的 url 都由 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”缓存​​,而所有其他请求都使用“默认”缓存?

我知道我可以在“api”应用程序的 url 或视图中使用 cache_page 函数/装饰器,但我有很多 url 和视图,所以如果我想更改超时,维护起来会很烦人。

我也知道,当请求以“/api/”开头时,我可以自定义中间件以指向不同的缓存,但是没有更清洁的方法吗?

4

0 回答 0