Maison > développement back-end > Tutoriel Python > Comment créer des réponses JSON dans Django, en particulier lors de la conversion à partir de scripts Ajax côté serveur ?

Comment créer des réponses JSON dans Django, en particulier lors de la conversion à partir de scripts Ajax côté serveur ?

DDD
Libérer: 2024-11-20 14:57:16
original
701 Les gens l'ont consulté

How to Create JSON Responses in Django,  Especially When Converting from Server-Side Ajax Scripts?

Utiliser Django pour créer des réponses JSON

La création de réponses JSON est essentielle lors de la création d'API REST ou d'applications Web dynamiques. Voici un problème rencontré par un développeur qui tente de convertir un script Ajax côté serveur en Django HttpResponse :

Formulation du problème

Le problème rencontré lors de la conversion d'un script Ajax côté serveur en Django HttpResponse implique une inadéquation entre la sortie JSON attendue et l'implémentation actuelle. Le code Django utilise simplejson pour encoder une liste Python, ce qui entraîne une structure JSON incorrecte.

Solution proposée

Pour résoudre ce problème, il est recommandé d'utiliser un dictionnaire Python pour représenter les données JSON. . Les dictionnaires sont plus adaptés aux paires clé-valeur, qui s'alignent mieux sur la structure JSON. Voici un exemple :

import json

from django.http import HttpResponse

response_data = {}
response_data['result'] = 'error'
response_data['message'] = 'Some error message'
Copier après la connexion

JSON HttpResponse avec Django

Avant Django 1.7, les réponses JSON pouvaient être créées en utilisant :

return HttpResponse(json.dumps(response_data), content_type="application/json")
Copier après la connexion

Dans Django 1.7 et versions ultérieures, l'approche recommandée est d'utiliser JsonResponse class :

from django.http import JsonResponse

return JsonResponse({'foo': 'bar'})
Copier après la connexion

L'utilisation d'un dictionnaire et de la méthode Django appropriée garantit que la réponse JSON est correctement formatée et conforme au résultat attendu.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal