3

我正在发布到 Django 中的视图。POST 正文包含以下格式的数据:

{
    'Service' : 'API'
}

在我看来,我正在这样做:

args = request.POST
service = args.get('Service', '').strip()

service出来''

我使用 pdb 并且request.POST是这样的:

<QueryDict: {u"{\n    'Service' : 'API'\n}": [u'']}>

这就是原因,因为它已service成为''dict-in-a-dict。我想知道这应该发生吗?是什么[u'']。它是从哪里添加到体内的?如果这是应该发生的事情,我该如何解析身体以脱身Service

4

1 回答 1

1

如果您要发布这样的字符串(对于 JSON-RPC 之类的东西很常见),而不是使用已知格式(如multipart/form-data),您可以使用它(在您看来):

def post(self, request, *args, **kwargs):
    body = request.body  # This is your string
    data = json.loads(body)
    service = data['Service']

这取决于您的前端代码发回有效的 JSON 数据。否则,您将不得不使用自己的设备来解码不那么标准的东西(例如,您的示例使用单引号 - 不是有效的 JSON)。使用 将 JavaScript 对象编码为 JSON JSON.stringify(my_obj),然后发布该值。

于 2013-06-17T04:44:40.507 回答