Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Mengembalikan Respons JSON dengan Berkesan dalam Django?

Bagaimanakah Saya Mengembalikan Respons JSON dengan Berkesan dalam Django?

Susan Sarandon
Susan Sarandonasal
2024-11-26 06:49:13481semak imbas

How Do I Return a JSON Response Effectively in Django?

Mencipta JSON Response menggunakan Django dan Python

Apabila cuba menukar skrip respons Ajax sebelah pelayan kepada Django HttpResponse, adalah penting untuk mempertimbangkan perbezaan dalam sintaks dan pendekatan. Berikut ialah pecahan isu yang berpotensi dan versi kod Django yang diperbetulkan:

Menggunakan Kamus Daripada Senarai untuk JSON:

Skrip Python asal mengembalikan tatasusunan menggunakan $arrayToJs. Walau bagaimanapun, dalam Python, adalah lebih idiomatik untuk menggunakan kamus semasa mencipta kandungan JSON.

# CORRECTED CODE
response_data = {'id': validateId, 'error': validateError}

Mengembalikan Respons JSON:

Dalam Django, terdapat dua cara untuk mengembalikan respons JSON bergantung pada versi Django anda:

Untuk versi Django sebelum 1.7:

return HttpResponse(json.dumps(response_data), content_type="application/json")

Untuk Django 1.7 dan ke atas:

import json

from django.http import JsonResponse

return JsonResponse(response_data)

Pemprosesan Bersyarat:

Dalam kod asal, penyata pemprosesan dan pemulangan terletak di luar blok bersyarat, yang membawa kepada kelewatan berterusan dalam mengembalikan tindak balas. Kod yang diperbetulkan memastikan bahawa respons dikembalikan serta-merta selepas pengesahan:

if validate_value == "TestUser":
    response_data['status'] = True
    return JsonResponse(response_data)
else:
    response_data['status'] = False
    return JsonResponse(response_data)

Atas ialah kandungan terperinci Bagaimanakah Saya Mengembalikan Respons JSON dengan Berkesan dalam Django?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn