Flask本身不提供缓存,但它的基础库之一Werkzeug具有一些非常基本的缓存支持。代码:fromflaskimportFlask,request,g,current_app,sessionfromflask_restfulimportResource,Api,reqparseimportrequestsimportjson#geventfromgeventimportmonkey,sleepfromgevent.pywsgiimportWSGIServermonkey.patch_all()#geconvent#zeendimportCaugchefromimportSimpleCachecache=SimpleCache()#缓存结束#请求A:post,生成一个变量key#请求B:需要使用请求A的变量key#Flask底层-Werkzeug-是一个支持缓存的app=Flask(__name__)api=Api(app)app.config.update(DEBUG=True)#示例1:定义两条路由,通过缓存传递数据。@app.route('/asyn/',methods=['GET'])deftest_asyn_one():print("asyn有请求!")cache.clear()timeout=30while(notcache.has('a'))andtimeout>0:sleep(1)timeout=timeout-1print('timeout:',超时)print("a",cache.get('a'))return'helloasyn'@app.route('/test/',methods=['GET'])deftest():cache.set('a','1')return'hellotest'#例2:定义flask_restfulservice#两个服务都是Post方法,请求地址分别是http://locahost:5000/ttest/1和http://locahost:5000/ttest/2#用户访问/ttest/1时产生的数据,第二次访问/ttest/2时通过缓存传递给用户。classTTest(Resource):defpost(self,todo_id):如果todo_id是'1':cache.clear()cache.set('a','aaaaaaaaaa')return1eliftodo_idis'2':x=cache.get('a')returnxapi.add_resource(TTest,'/ttest/
