我想使用Flask-Cache来缓存不是视图的函数的结果。但是,如果我装饰视图函数,它似乎只能工作。 Flask-Cache可以用来缓存“正常”功能吗?使用Flask-Cache来缓存非查看函数的结果
缓存工程,如果我装饰视图功能。
cache = Cache(app,config={'CACHE_TYPE': 'simple'})
@app.route('/statistics/', methods=['GET'])
@cache.cached(timeout=500, key_prefix='stats')
def statistics():
return render_template('global/application.html') # caching works here
如果我装饰一个“正常”函数并从视图中调用它,它不起作用。
class Foo(object):
@cache.cached(timeout=10, key_prefix='filters1')
def simple_method(self):
a = 1
return a # caching NOT working here
@app.route('/statistics/filters/', methods=['GET'])
def statistics_filter():
Foo().simple_method()
如果我对这两个函数使用相同的key_prefix
,它也可以。我认为这是一个线索,缓存它自己正在被正确初始化,但我调用简单方法或定义它的方式是错误的。
编辑我的问题,谢谢。 – WebQube
它看起来像你正在使用'simple_method'作为更大的东西的一部分。你可以包括包装类,以及你如何调用它? (就像现在一样,你的例子不会运行,因为'self'不会传递给'simple_method')。 –
编辑我的问题 – WebQube