List sebagai JSON
Termasuk bagian API JSON dalam perjalanan Django di Coddy. Pelajaran 2 dari 19.
Program membutuhkan satu URL yang mencantumkan semua tugas. Task tidak bisa langsung dimasukkan ke JSON, jadi setiap baris harus diubah menjadi dictionary terlebih dahulu. Method values() dari QuerySet melakukan itu, dengan kunci yang persis kamu tentukan. Pada model Book milik toko buku:
>>> Book.objects.values("title", "year")
<QuerySet [{'title': 'Dune', 'year': 1965}, {'title': 'Emma', 'year': 1815}]>Hasilnya masih berupa QuerySet, yang tidak dikenali oleh penulis JSON. list() menjalankan query dan menghasilkan list biasa.
Terakhir, JsonResponse hanya menerima dictionary kecuali kamu memberikan safe=False. List tanpa argumen itu akan memunculkan TypeError:
return JsonResponse(["red", "green", "blue"], safe=False)Tantangan
MudahDaftarkan setiap tugas sebagai JSON:
- Sebuah view
task_listyang mengembalikan list JSON, satu object untuk setiap tugas dengan kunciid,title,donedanpriority. - Rute
"api/tasks/", bernamatask_list.
Tekan Jalankan: pratinjau membuka /api/tasks/ dan menampilkan tiga tugas.
Coba sendiri
from django.http import JsonResponse
from django.shortcuts import render
from .models import Task
def home(request):
return render(request, "tasks/home.html", {"tasks": Task.objects.all()})
def stats(request):
data = {
"total": Task.objects.count(),
"done": Task.objects.filter(done=True).count(),
}
return JsonResponse(data)
Semua pelajaran di API JSON
2Membaca Permintaan
Memfilter dengan QueryMembuat dengan POST5Proyek: Mengurutkan Pekerjaan
Proyek: PrioritasProyek: Menghapus Tugas yang SelesaiLatihan sendiri: Playground Django