Как вернуть JSON-ответ в Django

JSON — это минимальный читаемый формат для структурирования данных. Он используется в основном для передачи данных между сервером и веб-приложением, как альтернатива XML. API, облегченные ответы и т. Д. Являются основными видами использования строки JSON.

В этой статье вы узнаете, как правильно возвращать JSON-ответ во всех версиях Django.

Джанго> = 1,7

За новее версии Django, вы можете использовать JsonResponse реализовано в django.http пакет, который облегчает вам задачу, так как вам не нужно предоставлять какой-либо тип контента или другую информацию, только ваши данные.

from django.http import JsonResponse
def index(request):
responseData = {
'id': 4,
'name': 'Test Response',
'roles' : ['Admin','User']
}
return JsonResponse(responseData)

Как и многие веб-фреймворки, возвращение «класса» в качестве ответа является предпочтительным методом для большинства разработчиков.

Джанго < 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"
]
}

Как и ожидалось. Повеселись !

Ссылка на основную публикацию
Adblock
detector