Что такое API
Часть раздела JSON API путешествия по Django на Coddy. Урок 1 из 19.
Написанные вами представления до сих пор возвращают страницы для чтения. API (программный интерфейс приложения) возвращает данные для программ. Приложение на телефоне, скрипт или JavaScript на странице запрашивает URL и получает данные, а не HTML.
Эти данные обычно представлены в формате JSON — это текст, похожий на словари и списки Python, с двойными кавычками и true, false и null вместо True, False и None в Python:
{"title": "Buy milk", "done": false, "due": null}Django преобразует словарь в ответ JSON с помощью JsonResponse:
from django.http import JsonResponse
def hello(request):
return JsonResponse({"message": "Hi", "ready": True})Он записывает JSON и задаёт заголовок Content-Type со значением application/json. Заголовок — это строка с информацией, отправляемая вместе с ответом; этот заголовок сообщает программе, какой тип данных она получила.
Задание
ЛегкоДобавь в трекер задач его первую конечную точку — URL, который возвращает числа вместо страницы.
- В
tasks/views.pyимпортируйJsonResponseизdjango.httpи добавь представлениеstats, которое возвращает JSON:total— количество задач, аdone— количество выполненных задач. - В
tasks/urls.pyдобавь маршрут"api/stats/"с именемstats.
Нажми «Играть»: в предварительном просмотре откроется /api/stats/ и отобразится {"total": 3, "done": 1}.
Попробуйте сами
from django.shortcuts import render
from .models import Task
def home(request):
return render(request, "tasks/home.html", {"tasks": Task.objects.all()})
Все уроки раздела JSON API
Потренируйтесь самостоятельно: Песочница Django