简体   繁体   中英

Delete specific cache in Flask-Cache or Flask-Caching

I am using Flask cache in my API in python.

Currently I am using the decorator @app.cache.memoize(cache_memoize_value) and I flush it by calling app.cache.delete_memoized(view)

The problem is that with memoize it will be cached for n views and not for a specific amount of time. If I want to specify a timeout for the cache I need to use the decorator @app.cache.cached(timeout=300) and clear it with app.cache.clear() . However, this clear method will clear everything and not only a specific view.

How can I only clear a specific view while using the cached decorator?

It's in fact pretty easy and I should have tried this before. Like for the cached decorator, you can specify a value in the memoized decorator. But instead of doing this: @app.cache.memoize(cache_memoize_value)

You need to do this @app.cache.memoize(timeout=cache_memoize_value)

  • For cache.cached() , use cache.delete() to delete specific cache, pass the cache key (default to view/<request.path> ).
  • For cache.memoize() , use cache.delete_memoized() to delete specific cache, pass the cache key (default to function name with or without args).
  • Use cache.clear() to delete all the cache data.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM