1

我正在开发我的第一个 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, '/')

4

1 回答 1

1

看起来不错,您可以通过将 time.sleep(60) 放入您的路线来轻松检查缓存是否有效

如果缓存不起作用,它将在每次发送响应之前等待 1 分钟 - 如果一切设置正确,它只会每周执行一次(因为当缓存处于活动状态时,将不再执行“睡眠”行)

您可以在本地使用 Postman 进行检查,或者只需访问浏览器中的 url

-> 记得在上线之前将其删除!

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

于 2020-06-08T09:39:18.907 回答