Django新手咨询:API返回多值后在HTML展示字段是否需改models.py?
解答:无需修改models.py,直接在视图+模板处理即可
嘿,作为Django新手完全不用纠结models的问题~你这个需求是展示外部API返回的临时数据,根本不需要修改models.py(那是用来定义数据库表结构的,咱们现在不用存数据到库),直接在视图里处理数据,再传给模板用for循环渲染就行,给你一步步的示例:
第一步:在视图里获取并处理API数据(views.py)
首先得确保你装了requests库(用来调用外部API),没装的话先跑pip install requests。然后写视图函数:
from django.shortcuts import render import requests def api_data_view(request): # 调用外部API,替换成你的实际API地址 api_url = "https://your-external-api-url.com/your-endpoint" response = requests.get(api_url) # 解析返回的JSON数据 api_data = response.json() # 提取需要的result列表(就是你拿到的那组包含name和Type的数据) data_list = api_data.get('result', []) # 把数据传给模板 return render(request, 'api_display.html', {'data_list': data_list})
第二步:在HTML模板里用for循环渲染(api_display.html)
用Django的模板语法遍历data_list,按照你要的格式展示name和Type:
<!DOCTYPE html> <html> <head> <title>API数据展示</title> </head> <body> <div class="api-content"> {% for item in data_list %} {{ item.name }} {{ item.Type }} {% if not forloop.last %}、{% endif %} {% endfor %} </div> </body> </html>
这样渲染出来的结果就是你想要的:ABC True、DEF False
额外说明
如果之后你需要把这些API数据持久化到数据库里,那才需要去models.py定义对应的模型,然后在视图里把数据存进去。但就当前的纯展示需求而言,完全不需要碰models~
内容的提问来源于stack exchange,提问作者Stack Ray
相关产品推荐
相关产品推荐

