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)
cache.cached()
, use cache.delete()
to delete specific cache, pass the cache key (default to view/<request.path>
). cache.memoize()
, use cache.delete_memoized()
to delete specific cache, pass the cache key (default to function name with or without args). 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.