如何在 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

如何通过 post 方法在 django-restful-framework 中创建新对象?

RESTful API

Django中的RESTful api在Django中使用inbult视图,无需创建2个url