Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Django中缓存每个应用程序,而不是每个站点或每个视图_Python_Django_Django Middleware_Django Cache_Django Caching - Fatal编程技术网

Python 在Django中缓存每个应用程序,而不是每个站点或每个视图

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,

假设我在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函数/decorator,但我有很多URL和视图,因此,如果我想更改超时,那么维护这些URL和视图会很烦人

我还知道,当请求以“/api/”开头时,我可以定制中间件以指向不同的缓存,但是没有更干净的方法来实现这一点吗