Maison >développement back-end >Tutoriel Python >Comment renvoyer efficacement une réponse JSON dans Django ?

Comment renvoyer efficacement une réponse JSON dans Django ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-26 06:49:13525parcourir

How Do I Return a JSON Response Effectively in Django?

Création d'une réponse JSON à l'aide de Django et Python

Lorsque vous tentez de convertir un script de réponse Ajax côté serveur en Django HttpResponse, il est essentiel de prendre en compte les différences de syntaxe et approche. Voici une ventilation des problèmes potentiels et une version corrigée du code Django :

Utiliser un dictionnaire au lieu d'une liste pour JSON :

Le script Python d'origine a renvoyé un tableau en utilisant $arrayToJs. Cependant, en Python, il est plus idiomatique d'utiliser un dictionnaire lors de la création de contenu JSON.

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

Renvoyer la réponse JSON :

Dans Django, il existe deux manières pour renvoyer une réponse JSON en fonction de votre version de Django :

Pour les versions de Django antérieures à 1.7 :

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

Pour Django 1.7 et supérieur :

import json

from django.http import JsonResponse

return JsonResponse(response_data)

Traitement conditionnel :

Dans le code d'origine, les instructions de traitement et de retour étaient situées en dehors du bloc conditionnel, ce qui entraînait un retard constant dans le retour de la réponse. Le code corrigé garantit que la réponse est renvoyée immédiatement après validation :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn