Python 在Django中缓存每个应用程序,而不是每个站点或每个视图
假设我在Django网站上有两个应用程序,一个用于API,一个用于html页面,所有以/API/开头的URL都由API应用程序处理。我设置了两个缓存,每个缓存都有一个特定的设置,如下所示:Python 在Django中缓存每个应用程序,而不是每个站点或每个视图,python,django,django-middleware,django-cache,django-caching,Python,Django,Django Middleware,Django Cache,Django Caching,假设我在Django网站上有两个应用程序,一个用于API,一个用于html页面,所有以/API/开头的URL都由API应用程序处理。我设置了两个缓存,每个缓存都有一个特定的设置,如下所示: CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.db.DatabaseCache', 'LOCATION': 'page_cache', 'TIMEOUT': 7200,
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函数/decorator,但我有很多URL和视图,因此,如果我想更改超时,那么维护这些URL和视图会很烦人
我还知道,当请求以“/api/”开头时,我可以定制中间件以指向不同的缓存,但是没有更干净的方法来实现这一点吗