如何缓存简单的 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