使用 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中文网其他相关文章!