清除Python Flask缓存不起作用

时间:2016-06-15 05:12:42

标签: python-2.7 flask-cache

我有以下三个文件。

app.py

from flask_restful import Api
from lib import globals
from flask import Flask
from flask.ext.cache import Cache

globals.algos_app =  Flask(__name__)

#cache in file system
globals.cache = Cache(globals.algos_app, config={'CACHE_TYPE': 'filesystem', 'CACHE_DIR': '/tmp'})

api = Api(globals.algos_app)
api.add_resource(Test, '/test')

if __name__ == '__main__':
    globals.algos_app.run(host='0.0.0.0', debug=True)

globals.py

global algos_app
global cache

Test.py

from flask_restful import Resource
from lib import globals
from flask_restful import Resource
import time

class Test(Resource):

    def get(self):
        return self.someMethod()

    def post(self):
        globals.cache.clear()
        return self.someMethod()

    @globals.cache.cached()
    def someMethod(self):
        return str(time.ctime())

我有一个GET方法需要缓存中的值和POST方法,它通过首先清除缓存来更新缓存。

但是,无论我调用GET还是POST方法,它总是从缓存中提供值。

PS:目前我只是在开发服务器上进行测试,但是我需要稍后使用WSGI进行部署。

1 个答案:

答案 0 :(得分:0)

我不确定这是不是最好的方式,但我是按照以下方式做到的。

class Test(Resource):

    def get(self):
        return globals.cache.get('curr_time')

    def post(self):
        result = self.someMethod()
        globals.cache.set('curr_time', result, timeout=3600)

    def someMethod(self):
        return str(time.ctime())