31
我今天遇到了同样的问题,在互联网上找不到任何示例,所以我玩了一些。
这是我的make_cache_key:
def make_cache_key(*args, **kwargs): path = request.path args = str(hash(frozenset(request.args.items()))) lang = get_locale() return (path + args + lang).enpre('utf-8')你可以使用request.url而不是path和哈希参数。我还需要将用户语言添加到键中。
缓存视图:
@app.route("/test")@cache.cached(timeout=50)def test(): a = request.args.get('a') b = request.args.get('b') return a + btest.make_cache_key = make_cache_key它有效,但我认为这很麻烦。原来,key_prefix可以是可调用的,可以生成整个cache_key。因此,我们可以这样做:
@app.route("/test2")@cache.cached(timeout=50, key_prefix=make_cache_key)def test2(): a = request.args.get('a') b = request.args.get('b') return a + b我只是想出了这一点,还没有在生产中使用它-因此它可能无法在所有情况下都起作用。



