个性化阅读
专注于IT技术分析

如何在Django中返回JSON响应

本文概述

JSON是一种用于结构化数据的最小可读格式。它主要用于在服务器和Web应用程序之间传输数据, 以替代XML。 API, 轻量级响应等是JSON字符串的基本用法。

在本文中, 你将学习如何在所有Django版本中正确返回JSON响应。

Django> = 1.7

对于较新的django版本, 你可以使用在django.http包中实现的JsonResponse, 这使你的工作更加轻松, 因为你无需提供任何内容类型或其他信息, 而只需提供数据。

from django.http import JsonResponse

def index(request):
    responseData = {
        '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.dumps
from django.http import HttpResponse

def index(request):
    responseData = {
        '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"
   ]
}

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

赞(0)
未经允许不得转载:srcmini » 如何在Django中返回JSON响应

评论 抢沙发

评论前必须登录!