如何缓存简单的 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 分钟,然后每次发送响应 - 如果一切设置正确,它每周只会这样做一次(因为当缓存处于活动状态时,"睡眠"行将不再执行(

您可以使用Postman在本地检查这一点,或者只需访问浏览器中的URL

->记得在上线之前明显删除它!

这里有一个关于它的好视频 https://www.youtube.com/watch?v=iO0sL6Vyfps

最新更新