1

我正在使用cache.memoizeFlask-Cache 来记忆一个函数。如何获取在装饰函数中设置的缓存键?如何在测试期间测试该函数是否被缓存?

from flask import Flask
from flask.ext.cache import Cache

app = Flask(__name__)
cache = Cache(app, config={'CACHE_TYPE': 'simple'})

@cache.memoize(timeout=10)
def get_news(nid, lang=None):
    return nid, lang

@app.route('/news/<str:nid>')
def news(news_id):
    return 'News: ' + get_news(news_id)
4

1 回答 1

4

使用memoize时,缓存键是在后台生成的,永远不需要手动访问。Flask-Cache 正在为您处理缓存和检索函数的结果。但是如果你对 Flask-Cache 是怎么做的感兴趣,你可以看看源代码。它是函数名称、参数和 uuid 的哈希值。

您不需要测试缓存命中,因为 Flask-Cache 已经过测试。您应该测试自己的代码,而不是库代码。但是如果你对 Flask-Cache 是怎么做的感兴趣,你可以看看测试。它会记住一个返回当前时间的函数,然后在休眠后检查返回是否相同。

于 2016-06-09T14:58:19.057 回答