Wie erstellt man JSON-Antworten in Django richtig?

DDD
Freigeben: 2024-11-25 21:11:12
Original
828 Leute haben es durchsucht

How to Correctly Construct JSON Responses in Django?

Erstellen von JSON-Antworten mit Django und Python

In Django kann die Konvertierung serverseitiger Ajax-Antworten in Django HttpResponse bei korrekter Ausführung unkompliziert sein. Lassen Sie uns einen früheren Versuch und seine Fallstricke untersuchen.

Der konvertierte Code

Der fragliche Originalcode versuchte, ein serverseitiges Skript in eine Django-HTTP-Antwort zu konvertieren:

def validate_user(request):
    if request.method == 'POST':
        ...
        array_to_js = [vld_id, vld_error, False]

        if vld_value == "TestUser":
            array_to_js[2] = True
            x = simplejson.dumps(array_to_js)
            return HttpResponse(x)
        else:
            ...
            return render_to_response('index.html', ...)
Nach dem Login kopieren

Das Problem

Das Problem liegt bei der Verwendung einer Liste (array_to_js) zum Erstellen der JSON-Antwort. Django erwartet beim Erstellen von JSON-Antworten ein Wörterbuch.

Die Lösung

Um dieses Problem zu beheben, verwenden Sie ein Wörterbuch zum Speichern der Antwortdaten:

response_data = {}
response_data['vld_id'] = vld_id
response_data['vld_error'] = vld_error
response_data['valid'] = False

if vld_value == "TestUser":
    response_data['valid'] = True

json_response = json.dumps(response_data)
return HttpResponse(json_response, content_type="application/json")
Nach dem Login kopieren

Zusätzlicher Tipp

Für Django 1.7 können Sie das verwenden JsonResponse-Klasse zum einfachen Erstellen von JSON-Antworten:

from django.http import JsonResponse

return JsonResponse({
    'vld_id': vld_id,
    'vld_error': vld_error,
    'valid': False
})
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie erstellt man JSON-Antworten in Django richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage