Очистка кеша 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())
Другие вопросы по тегам