Очистка кеша Python Flask не работает
У меня есть следующие три файла.
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 ответ
Я не уверен, что это лучший способ, но я сделал это следующим образом.
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())