如何在django中构建json REST API(不使用Django REST框架)

Ale*_*ail 5 django django-rest-framework

前言

我有一个django项目.我已将它连接起来,因此它为一堆模型提供了大量视图.现在我想添加一个端点,它只是将数据库的很大一部分转储为json.

我假设你这样做的方法是在视图类/方法中添加一个URL,它返回一个充满json的HTTPResponseObject.不幸的是,经过相当多的谷歌搜索,我所能找到的只是对Django REST框架的引用.这是你认为Django内部提供的不是外部插件库的一部分.但是搜索django文档并没有立即给出答案 - 我认为没有任何关于如何构建一个只服务于json的端点的文档.

问题:

  • 我是否真的需要"Django REST框架"来为django中的json服务?
  • 我是否因为服务json而忽略了Django的文档?
  • 在django项目中为json提供服务的规范方法是什么?

Ale*_*ail 9

经过更多的谷歌搜索,我找到了我在Django文档中寻找的东西: JsonResponse

from django.http import JsonResponse
return JsonResponse({'foo':'bar'})
Run Code Online (Sandbox Code Playgroud)

我想用的是"REST"谷歌搜索是那种这使得搜索空间总是直接把我的查询对"Django的REST框架",这是不是我想要的东西,虽然我一个红鲱鱼想添加一个RESTful API.


小智 5

您可以使用此方法编写 GET API,但对于 POST 方法,这不起作用。对于 Post 方法,我们需要使用一些 REST 库。

POST 方法将检查 cookie 中的 CSRF 令牌以及它无法执行请求的位置,因为您的 django 服务器会将此请求视为伪造的。