首页 >后端开发 >Python教程 >如何在 Django 中正确构建 JSON 响应?

如何在 Django 中正确构建 JSON 响应?

DDD
DDD原创
2024-11-25 21:11:12910浏览

How to Correctly Construct JSON Responses in Django?

使用 Django 和 Python 创建 JSON 响应

在 Django 中,如果正确完成,将服务器端 Ajax 响应转换为 Django HttpResponse 可以很简单。让我们探索一下之前的尝试及其陷阱。

转换后的代码

相关原始代码尝试将服务器端脚本转换为 Django HttpResponse:

def validate_user(request):
    if request.method == 'POST':
        ...
        array_to_js = [vld_id, vld_error, False]

        if vld_value == "TestUser":
            array_to_js[2] = True
            x = simplejson.dumps(array_to_js)
            return HttpResponse(x)
        else:
            ...
            return render_to_response('index.html', ...)

问题

问题在于使用列表(array_to_js)来构造JSON响应。 Django 在创建 JSON 响应时需要字典。

解决方案

要解决此问题,请使用字典来存储响应数据:

response_data = {}
response_data['vld_id'] = vld_id
response_data['vld_error'] = vld_error
response_data['valid'] = False

if vld_value == "TestUser":
    response_data['valid'] = True

json_response = json.dumps(response_data)
return HttpResponse(json_response, content_type="application/json")

额外提示

对于 Django 1.7 ,您可以使用 JsonResponse 类轻松创建 JSON 响应:

from django.http import JsonResponse

return JsonResponse({
    'vld_id': vld_id,
    'vld_error': vld_error,
    'valid': False
})

以上是如何在 Django 中正确构建 JSON 响应?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn