次の3つのファイルがあります。
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 を使用してデプロイする必要があります。