API 设计中返回多年的数据通常需要考虑到时间区间和数据需求。以下是一个简单的示例,演示如何返回过去 5 年内的销售数据:
from flask import Flask, jsonify
app = Flask(__name__)
# 假设这是从数据库中查询并得到的数据
sales_data = {
"2020": {"Q1": 100, "Q2": 150, "Q3": 200, "Q4": 250},
"2019": {"Q1": 90, "Q2": 130, "Q3": 180, "Q4": 220},
"2018": {"Q1": 80, "Q2": 120, "Q3": 170, "Q4": 210},
"2017": {"Q1": 70, "Q2": 110, "Q3": 160, "Q4": 200},
"2016": {"Q1": 60, "Q2": 100, "Q3": 150, "Q4": 190}
}
@app.route('/sales')
def sales():
current_year = 2020 # 假设当前是 2020 年
start_year = current_year - 4 # 返回过去 5 年的数据
result = {}
for year in range(start_year, current_year + 1):
if str(year) in sales_data:
result[str(year)] = sales_data[str(year)]
return jsonify(result)
上面的代码中,我们查询了过去 5 年的数据,并将结果存储在名为 result
的字典中。最后,我们使用 Flask 提供的 jsonify
函数将查询结果转换为 JSON 格式并返回。
注意,在实际开发中,我们需要更加仔细地考虑时间区间和数据需求,以防止响应中包含不必要的或过多的数据,从而导致响应时间过长。