Удалить определенный кэш в 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() удалить все данные кеша.
Другие вопросы по тегам