与 JsonResponse 相比,使用 djangorestframework 有什么额外的优势吗?

时间:2021-06-04 14:00:08

标签: json django rest serialization django-rest-framework

我是 Django 和 API 创建的新手。我想弄清楚使用 djangorestframework 还是只使用 JsonResponse 更好。我从 Digital Ocean's tutorial 那里得到了 djangorestframework 的建议,但也发现了 JsonResponse,这似乎更简单,因为我不必安装其他软件包。

目标:我希望能够为网络和移动应用程序提供用户信息。

我看到在此 post 中为 djangorestframework 提供了一些原因,我将其粘贴在下面以供后验。

<块引用>

使用 DRF 的常见情况是:

1) 您正在为第三方创建面向公众的外部 API 开发人员访问您站点中的数据,并且您要输出 他们可以在应用中使用 JSON 而不是 HTML。

2) 您正在从事移动开发,并且希望您的移动应用能够 GET/PUT/POST 请求到 Django 后端,然后让你的后端 将数据(通常为 JSON)输出到移动应用程序。既然你不想 要将 HTML 传回移动应用程序,您可以使用 DRF 来有效地创建 您的移动应用可以调用的 REST API。

3)您正在创建一个 Web 应用程序,但您不想使用 Django 模板语言。相反,您想使用 Django ORM 但输出 一切都为 JSON,并让您的前端由 JavaScript MVC 创建 React、Backbone、AngularJS 等框架。在这些情况下,你 可以使用 DRF 输出 JavaScript 框架可以处理的 JSON。

1 个答案:

答案 0 :(得分:3)

DRF 基本上为您提供了许多功能来制作原始 django 中没有的 API。

例如:

  • Serializers:一种制作序列化器的声明方式(django 风格,如声明模型),当您使用 JsonResponse 时,您必须在任何地方告诉要序列化的内容,使用序列化器您必须导入它并使用它,这个序列化程序也可以保存/更新对象。还支持 ORM 源​​来连接您的模型(想想使用 JsonResponse 序列化具有嵌套关系的模型是多么困难)。

  • Web 可浏览 API,您可以看到所有可用的端点。

  • 要安装和使用的第三方软件包:https://www.django-rest-framework.org/community/third-party-packages/#existing-third-party-packages