Я не верю, что структура кэша Django может имитировать маршрутизацию в БД в целом .
Для кэша сайта с использованием структуры кэша связующего ПО вы должны указать имя кэша в settings.py, например:
CACHE_MIDDLEWARE_ALIAS = "my_cache_alias"
Для страницы кэша вы можете вручную указать имя кэша в декораторе,Например:
@cache_page(60 * 15, cache="my_cache_alias")
def my_view(request):
...
Я не уверен, что маршрутизация кэша действительно имеет смысл для кэширования сайтов и страниц, поэтому у меня нет проблем с тем, как это спроектировано.
Теперь, дляВ вашем случае, когда вы используете MySQL в качестве бэкэнда кэша базы данных, вы можете настроить его и создать маршрутизатор в соответствии с разделом Django docs для кэширование базы данных .Например, это будет ваша установка CACHES
:
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '127.0.0.1:11211',
}
'my_cache_alias': {
'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
'LOCATION': 'my_cache_table',
}
}
Затем создайте маршрутизатор, который определяет, какой серверный кеш для каких моделей использовать.Он выглядит и работает точно так же, как маршрутизатор БД (как вы можете увидеть в разделе документации по кэшированию базы данных и нескольким базам данных ), за исключением того, что он возвращает псевдоним кэша вместо псевдонима db.