我是 Django 的新手,我知道如何使用模型序列化程序,但我找不到有关如何从 API 验证数据的信息。例如, 我有一个从另一个网络服务获取数据的方法。
def get_sales(self):
url = "https://statistics-api.com/api/v1/sales"
body = {"dateFrom": f"{datetime.datetime.now().date() - datetime.timedelta(days=30)}"}
try:
request = requests.get(url, params=body)
if request.status_code == 200:
return True, request.json()
return False, request.json()["errors"]
except json.JSONDecodeError as e:
return False, f"Response is not in JSON format"
响应为 JSON 格式。像这样:
(True, [{'date': '2023-03-03T13:02:22', 'barcode': '46134548641', 'totalPrice': 500, 'discountPercent': 52}]
所以,我需要从我的 views.py 中的响应中获取数据:
sales = api.get_sales()
result, sales_info = sales
if result:
try:
prices_count = []
for element in sales_info:
price = element.get("totalPrice", "")
prices_count.append(price)
transactions_total = sum(prices_count)
我知道这不是最佳实践,因为 KeyError。如何通过序列化程序验证数据?