如何缓存简单的 Flask Restful API
How to cache simple Flask Restful API
我正在开发我的第一个 Flask Restful API,我试图将它缓存一周,以便它只在星期日发送一个更新请求。我计划在周日将它上传到 Heroku,以便我设置的超时 (604800) 同步到周日。我能够创建显示 JSON 的页面就好了,但我正在寻找一些关于缓存位的建议,因为我觉得我没有正确地做这件事,而且我不确定如何在本地检查它在将其上传到 Heroku 之前查看它是否有效。
from flask import Flask
from flask_caching import Cache
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
cache = Cache(app, config={'CACHE_TYPE': 'simple'})
class Products(Resource):
@cache.cached(timeout=604800) # cache set to 1 week in seconds
def get(self):
product_list = []
item_count = len(product)
for x in range(item_count):
product_list.append({'title':product[x].title, 'url':product[x].url,'image':product[x].images.medium})
return {'product_list':product_list}
api.add_resource(Products, '/')
看起来不错,您可以通过将 time.sleep(60) 放入路由中来轻松检查缓存是否正常工作
如果缓存不起作用,它会在每次发送响应之前等待 1 分钟 - 如果一切设置正确,它只会每周发送一次(因为当缓存处于活动状态时,行 "sleep"将不再执行)
您可以使用 Postman 在本地进行检查,或者只需在浏览器中访问 url
-> 记得在上线前把它去掉!
这里有一个关于它的好视频
https://www.youtube.com/watch?v=iO0sL6Vyfps
我正在开发我的第一个 Flask Restful API,我试图将它缓存一周,以便它只在星期日发送一个更新请求。我计划在周日将它上传到 Heroku,以便我设置的超时 (604800) 同步到周日。我能够创建显示 JSON 的页面就好了,但我正在寻找一些关于缓存位的建议,因为我觉得我没有正确地做这件事,而且我不确定如何在本地检查它在将其上传到 Heroku 之前查看它是否有效。
from flask import Flask
from flask_caching import Cache
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
cache = Cache(app, config={'CACHE_TYPE': 'simple'})
class Products(Resource):
@cache.cached(timeout=604800) # cache set to 1 week in seconds
def get(self):
product_list = []
item_count = len(product)
for x in range(item_count):
product_list.append({'title':product[x].title, 'url':product[x].url,'image':product[x].images.medium})
return {'product_list':product_list}
api.add_resource(Products, '/')
看起来不错,您可以通过将 time.sleep(60) 放入路由中来轻松检查缓存是否正常工作
如果缓存不起作用,它会在每次发送响应之前等待 1 分钟 - 如果一切设置正确,它只会每周发送一次(因为当缓存处于活动状态时,行 "sleep"将不再执行)
您可以使用 Postman 在本地进行检查,或者只需在浏览器中访问 url
-> 记得在上线前把它去掉!
这里有一个关于它的好视频 https://www.youtube.com/watch?v=iO0sL6Vyfps