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', ...)
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")
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 })
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!