Удалить определенный кэш в Flask-Cache или Flask-Caching
Я использую кэш Flask в моем API в Python.
В настоящее время я использую декоратор @app.cache.memoize(cache_memoize_value)
и я смыть его, позвонив app.cache.delete_memoized(view)
Проблема в том, что с memoize
это будет кешировано для n
просмотров, а не на определенное количество времени. Если я хочу указать тайм-аут для кэша, мне нужно использовать декоратор @app.cache.cached(timeout=300)
и очистить это с app.cache.clear()
, Однако этот понятный метод очистит все, а не только конкретный вид.
Как очистить только определенный вид при использовании кэшированного декоратора?
2 ответа
Это на самом деле довольно легко, и я должен был попробовать это раньше. Как и для кэшированного декоратора, вы можете указать значение в запоминаемом декораторе. Но вместо этого:@app.cache.memoize(cache_memoize_value)
Вы должны сделать это @app.cache.memoize(timeout=cache_memoize_value)
- За
cache.cached()
использоватьcache.delete()
чтобы удалить определенный кеш, передайте ключ кеша (по умолчаниюview/<request.path>
). - За
cache.memorize()
использоватьcache.delete_memorized()
чтобы удалить определенный кеш, передайте ключ кеша (по умолчанию имя функции с аргументами или без них). - использование
cache.clear()
удалить все данные кеша.