Was ist eine API?
Teil des Abschnitts JSON-APIs der Django-Journey von Coddy. Lektion 1 von 19.
Die bisher geschriebenen Views geben Seiten zurück, die Menschen lesen können. Eine API (Programmierschnittstelle) gibt Daten für Programme zurück. Eine Smartphone-App, ein Skript oder das JavaScript auf einer Seite fordert eine URL an und erhält Daten zurück, statt HTML.
Diese Daten sind normalerweise JSON, Text, der wie Python-Dictionaries und -Listen aussieht, mit doppelten Anführungszeichen und true, false und null an den Stellen, an denen Python True, False und None verwendet:
{"title": "Buy milk", "done": false, "due": null}Django wandelt ein Dictionary mit JsonResponse in eine JSON-Antwort um:
from django.http import JsonResponse
def hello(request):
return JsonResponse({"message": "Hi", "ready": True})Es schreibt das JSON und setzt den Content-Type-Header auf application/json. Ein Header ist eine Informationszeile, die zusammen mit der Antwort gesendet wird; dieser teilt dem Programm mit, welche Art von Daten es erhalten hat.
Aufgabe
EinfachGib dem Aufgaben-Tracker seinen ersten Endpunkt: eine URL, die Zahlen statt einer Seite zurückgibt.
- Importiere in
tasks/views.pyJsonResponseausdjango.httpund füge eine Ansichtstatshinzu, die JSON zurückgibt:total, die Anzahl der Aufgaben, unddone, die Anzahl der erledigten Aufgaben. - Füge in
tasks/urls.pydie Route"api/stats/"mit dem Namenstatshinzu.
Klicke auf „Ausführen“: Die Vorschau öffnet /api/stats/ und zeigt {"total": 3, "done": 1}.
Probier es selbst
from django.shortcuts import render
from .models import Task
def home(request):
return render(request, "tasks/home.html", {"tasks": Task.objects.all()})
Alle Lektionen in JSON-APIs
Übe selbstständig: Django-Playground