如何在 Django 中使用 RESTful API
Posted
技术标签:
【中文标题】如何在 Django 中使用 RESTful API【英文标题】:How to Use RESTful APIs with Django 【发布时间】:2020-12-25 03:08:24 【问题描述】:我一直在尝试将使用 Django-rest 框架开发的 REST API 与另一个 Django Web 应用程序集成。但停留在将 JSON 数据传递到前端。我将不胜感激任何帮助。这是我各自的文件。
我在views.py文件上尝试了两种不同的url,一种是AWS API Gateway API,使用时不会抛出错误但前端不显示数据。
对象类似于 'key': 'value' 的 AWS API JSON 数据。它只包含一个对象
views.py
def ClientList(request):
response = requests.get('A URL')
client_data = response.json()
return render(request, 'clients/client_list.html', context=client_data)
当我更改 django-rest 框架 API 的 views.py 中的 url 时,我收到一个错误,例如“JSON 对象必须是 str、bytes 或 bytearray,而不是列表” JSON data where objects就像 [key: value,key:value, ...] 表体已相应更改。
前端 HTML
<table class="table data-list-view">
<thead>
<tr>
<th></th>
<th>NAME</th>
<th>EMAIL</th>
<th>MOBILE</th>
<th>ADDRESS</th>
<th>ROLE</th>
<th>ACTION</th>
</tr>
</thead>
<tbody>
% for client in client_data %
<tr>
<td></td>
<td class="product-name">client.UserId</td>
<td class="product-category">client.Height</td>
<td class="product-category">client.Income</td>
<td class="product-category">client.Age</td>
<td>
</td>
</tr>
% endfor %
</tbody>
</table>
【问题讨论】:
请阅读meta.***.com/questions/285551/… 【参考方案1】:修改后的视图。返回的 json 列表被转换成字典。它奏效了。注意:字典键也需要在html中匹配。
def ClientList(request):
response = requests.get('http://127.0.0.1:8000/clients/')
client_data = response.json()
context = 'client_data': client_data
return render(request, 'clients/client_list.html', context)
【讨论】:
以上是关于如何在 Django 中使用 RESTful API的主要内容,如果未能解决你的问题,请参考以下文章
Django RESTful Framework 如何从 HTTP 标头的令牌中获取用户模型?
Python——用 Django 写 restful api 接口
如何在 ubuntu 上为 django restful 服务配置 apache2