Django rest框架是否接受JSON数据?

2024-05-13 21:28:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经使用django rest框架创建了restfulapi。用户终结点是

/api/v1/users

我想创建新用户。我以JSOn格式发送用户数据。

{
    "username": "Test1",
    "email": "test1@gmail.com",
    "first_name": "Test1",
    "last_name": "Test2",
    "password":"12121212"
}

我正在使用Chrome扩展Postman来测试api。但用户数据尚未保存。答案是:

{
    "detail": "Unsupported media type \"text/plain;charset=UTF-8\" in request."
}

附加屏幕截图 enter image description here


Tags: 数据django用户name框架restapijson
3条回答

您错过了在headers部分添加Content-Type头。只要将Content-Type头设置为application/json就可以了。

见下图:

postman

另外,如果在使用Postman发出POST请求时遇到错误{"detail": "CSRF Failed: CSRF token missing or incorrect."},您可能还需要在头中包含CSRF令牌。在这种情况下,添加一个X-CSRFToken头,并将value作为CSRF令牌值。

要完成此问题,您需要执行两个步骤:

  1. application/json值添加Content-Type
  2. Token {YOUR_CUSTOM_TOKEN}值添加Authorization头以传递CSRFToken

注意:如果要使用会话进行身份验证,则不需要执行第二步,但如果要将此API用于移动设备,则必须将授权头传递给服务器

我希望能帮上忙

如果有人遇到像我这样的问题,我会贴出这个答案。

我正在使用Angular 2和Django Rest Framework制作的API开发一个前端应用程序,我以前用以下报头发送请求:

'Content-Type': 'application/json'

它工作得很好,直到我在Fire Fox上尝试它,我无法加载所需的数据,我通过添加以下头来解决它

'Content-Type': 'application/json',
'Accept': 'application/json'

这里有一个解释,^{}告诉服务器数据的内容类型是什么,而^{}告诉服务器客户端将访问什么内容类型。

关于这个问题,这里有一个很好的明确答案:

https://webmasters.stackexchange.com/questions/31212/difference-between-the-accept-and-content-type-http-headers

相关问题 更多 >