我有以下三个文件。
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进行部署。
答案 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())