Django 发布请求数据

gji*_*nya 1 python django curl django-models

我有以下 POST 请求

curl -v --dump-header --H "Content-Type: application/json" -X POST --data '{"name": "John", "age": 27}' "http://localhost:8300/api/v1/create_contact?username=gegham&api_key=3efc6df6023534279d2183a696044a8cfec964a9"
Run Code Online (Sandbox Code Playgroud)

我打印 request.POST 后的结果是

POST:<QueryDict: {u'{"name": "John", "age": 27}': [u'']}>
Run Code Online (Sandbox Code Playgroud)

但不是

POST: <QueryDict: {u'name': [u'John'], u'age': [u'27']}>
Run Code Online (Sandbox Code Playgroud)

所以,我不能将它用作字典并通过键获取值。为什么 POST 数据格式与平常不同??

Dan*_*man 5

因为您发送的是 JSON,而不是表单数据。使用request.body和反序列化它json.loads