如何在Django中返回JSON响应

本文概述

  • Django> = 1.7
  • Django < 1.7
JSON是一种用于结构化数据的最小可读格式。它主要用于在服务器和Web应用程序之间传输数据, 以替代XML。 API, 轻量级响应等是JSON字符串的基本用法。
在本文中, 你将学习如何在所有Django版本中正确返回JSON响应。
Django> = 1.7【如何在Django中返回JSON响应】对于较新的django版本, 你可以使用在django.http包中实现的JsonResponse, 这使你的工作更加轻松, 因为你无需提供任何内容类型或其他信息, 而只需提供数据。
from django.http import JsonResponsedef index(request):responseData = http://www.srcmini.com/{'id': 4, 'name': 'Test Response', 'roles' : ['Admin', 'User']}return JsonResponse(responseData)

正如许多Web框架所做的那样, 返回” 类” 作为响应是大多数开发人员的首选方法。
Django < 1.7对于较早的django版本, 你需要返回一个HttpResponse, 其具有JSON的特定内容类型作为第二个参数。
import json# for older versions (and using python < 2.7)#from django.utils import simplejson# and change the json.dumps for simplejson.dumpsfrom django.http import HttpResponsedef index(request):responseData = http://www.srcmini.com/{'id': 4, 'name': 'Test Response', 'roles' : ['Admin', 'User']}return HttpResponse(json.dumps(responseData), content_type="application/json")

注意:如果要在较新的版本上, 仍可以使用此方法。
由于JsonResponse类不存在, 因此你需要使用老式的方法, 编写起来不是那么快, 但是可以使用。
这两个响应的输出为:
{"id":4, "name":"Test Response", "roles":["Admin", "User"]}

如预期的那样。玩得开心 !

    推荐阅读