gpt4 book ai didi

python - 为可以显式清除的 json 创建缓存

转载 作者:太空宇宙 更新时间:2023-11-04 03:45:32 25 4
gpt4 key购买 nike

我在蓝图上有很多路线都是按照这些路线做的:

# charts.py
@charts.route('/pie')
def pie():
# ...
return jsonify(my_data)

数据来自 CSV,每 x 小时由一个独立于应用程序的脚本抓取一次。应用程序使用一个类来读取它,然后绑定(bind)到蓝图。

# __init__.py
from flask import Blueprint
from helpers.csv_reader import CSVReader

chart_blueprint = Blueprint('chart_blueprint', __name__)
chart_blueprint.data = CSVReader('statistics.csv')

from . import charts

我的目标是缓存路由的几个响应,因为数据不会改变。然而,更具挑战性的问题是能够在我的提取脚本完成时明确清除数据。

人们会怎么做呢?我有点迷茫,但我想我需要在我的蓝图上注册一个 before_request

最佳答案

ETag and Expires正是为此而生:

class CSVReader(object):
def read_if_reloaded(self):
# Do your thing here
self.expires_on = self.calculate_next_load_time()
self.checksum = self.calculate_current_checksum()


@charts.route('/pie')
def pie():
if request.headers.get('ETag') == charts.data.checksum:
return ('', 304, {})
# ...
response = jsonify(my_data)
response.headers['Expires'] = charts.data.expires_on
response.headers['ETag'] = charts.data.checksum
return response

关于python - 为可以显式清除的 json 创建缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24017465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com