Heim  >  Artikel  >  Backend-Entwicklung  >  Ausführliche Erläuterung von Beispielen zur Konvertierung von Datenbankdaten in das JSON-Format

Ausführliche Erläuterung von Beispielen zur Konvertierung von Datenbankdaten in das JSON-Format

零下一度
零下一度Original
2017-07-21 16:24:543826Durchsuche

Ich plane vor kurzem den Aufbau einer automatisierten Betriebs- und Wartungsplattform und schaue mir daher das Wissen von Django an.

Bei der eigentlichen Projektentwicklung sind wir auf ein kleines Problem gestoßen: Die gängige Dateninteraktion zwischen Front- und Back-End ist JSON. Für das Front-End ist es relativ einfach, Daten an den Server zu übertragen. Etwas problematischer ist, dass die Serverseite JSON an das Front-End überträgt.

Zunächst werden die Daten standardmäßig aus der Datenbank abgerufen. Als Betriebs- und Wartungspersonal bin ich jedoch von dieser Art abstrakter API angewidert. Denn obwohl es die Datenbanktabelle in ein Objekt für Entwickler abstrahiert, was für die Entwicklung praktisch ist und kein Schreiben von SQL-Anweisungen erfordert, ist es auch die Ursache für Leistungsengpässe in späteren Programmen (bei der erneuten Fehlerbehebung stoße ich auf 70 Zeilen SQL). Anweisungen...). Für ein Betriebs- und Wartungspersonal ist reines SQL eine grundlegende Fähigkeit, und das Erlernen der ORM-Syntax erhöht die Lernkosten.

Wie auch immer, das Thema dieses Mal ist die Konvertierung von aus der Datenbank erhaltenen Daten in JSON. Im Folgenden werden wir sowohl ORM- als auch SQL-Methoden vorstellen.

1. Verwenden Sie die Django-Modellebene und die ORM-Technologie, um in das JSON-Format zu konvertieren.

1 def getdata(request):2    # 使用ORM3    # all()返回的是QuerySet 数据类型;values()返回的是ValuesQuerySet 数据类型4    data = models.VM.objects.values('id', 'ip', 'host', 'username')5    data = serializers.serialize("json", tomcats)6    return JsonResponse(list(data), safe=False)

2. Verzichten Sie vollständig auf die Django-Modellebene und konvertieren Sie reines SQL in das JSON-Format

1 def getdata(request):2 # 使用SQL3     with connection.cursor() as cursor:4         cursor.execute('select id, machine, tomcathome, ipaddress, description from tomcatData')5         data = dictfetchall(cursor)6     return JsonResponse(data, safe=False, json_dumps_params={'ensure_ascii': False})

JsonResponse-Objekt:

Klasse <span class="highlighted">JsonResponse</span>(Daten, Encoder=DjangoJSONEncoder, sicher=True, json_dumps_params=None,**kwargs)

Diese Klasse ist eine Unterklasse von HttpResponse. Ihr Hauptunterschied zur übergeordneten Klasse ist:

1. Der Standardinhaltstyp ist auf application/json eingestellt.

2 , Daten sollten ein Wörterbuchtyp sein. Wenn der sichere Parameter auf „Falsch“ gesetzt ist, können Daten mit jedem Objekt ausgefüllt werden, das in das JSON-Format konvertiert werden kann, z. B. Liste, Tupel, Satz. Der standardmäßige sichere Parameter ist True. Wenn der von Ihnen übergebene Datentyp kein Wörterbuchtyp ist, wird eine TypeError-Ausnahme ausgelöst.

3. Der Parameter json_dumps_params ist ein Wörterbuch, das die Methode json.dumps() aufruft und die Parameter im Wörterbuch an die Methode übergibt.

Durch die obige Erklärung sind die in JsonResponse() der beiden oben genannten Methoden übergebenen Parameter sehr klar.

Auf diese Weise werden die Daten im JSON-Format an das Frontend übergeben und das Frontend kann sie über AJAX abrufen und verarbeiten oder anzeigen.

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung von Beispielen zur Konvertierung von Datenbankdaten in das JSON-Format. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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