Django

So verwenden Sie Django-Serializer

So verwenden Sie Django-Serializer
Serializer wird in Django verwendet, um die Modellinstanzen oder Abfragesätze in von Python unterstützte Datentypen zu konvertieren, die einfach in JSON, XML oder andere Formate gerendert werden können. Die Deserialisierung kann auch von Serializern durchgeführt werden, um die Originaldaten aus den serialisierten Daten zurückzubekommen. Diese Funktion ist im Django REST Framework verfügbar. Die Benutzer müssen dieses Framework also installieren, um die Serializer verwenden zu können. Jede Webseite der Website kann HTML, CSS und Daten aus den Datenbanktabellen enthalten. Die API versteht diese Arten von Inhalten jedoch nicht und kann nur die Rohdaten, d. h. JSON-Daten, verstehen. Wie die Serializer verwendet werden können, um die Modellinstanz in das JSON-Format zu konvertieren, wird in diesem Tutorial gezeigt.

Voraussetzungen:

Bevor Sie das Skript dieses Tutorials üben, müssen Sie die folgenden Aufgaben ausführen.

  1. Installieren Sie die Django-Version 3+ auf Ubuntu 20+ (vorzugsweise)
  2. Erstellen Sie ein Django-Projekt
  3. Führen Sie den Django-Server aus, um zu überprüfen, ob der Server ordnungsgemäß funktioniert oder nicht.

Richten Sie eine Django-App für Serializer ein:

Führen Sie den folgenden Befehl aus, um eine Django-App namens zu erstellen Serienapp.

$ python3 verwalten.py startapp serialapp

Führen Sie den folgenden Befehl aus, um den Benutzer für den Zugriff auf die Django-Datenbank zu erstellen. Wenn Sie den Benutzer zuvor erstellt haben, müssen Sie den Befehl nicht ausführen.

$ python3 verwalten.py erstelltsuperuser

Führen Sie den folgenden Befehl aus, um das Django REST Framework zu installieren.

$ pip3 djangorestframework installieren

Fügen Sie das rest_framework und den App-Namen im . hinzu INSTALLED_APP Teil von dem die Einstellungen.py Datei.

INSTALLED_APPS = [
… .
'rest_framework',
'serielle App'
]

Erstellen Sie ein Modell für die Datenbanktabelle:

Öffne das Modelle.py Datei aus dem Serienapp Ordner und fügen Sie das folgende Skript hinzu, um die Struktur von . zu definieren Kunden Tabellen. Kunde Klasse ist definiert, um eine Tabelle namens table zu erstellen Kunden mit Name, Adresse, E-Mail, Kontakt_no, und erstellt Felder. Hier, Name, E-Mail, und contact_no Felder speichern Charakterdaten, die Adresse Feld speichert die Textdaten, und erstellt Feld speichert die DateTime-Daten.

Modelle.py

# Importieren Sie das Modellmodul
von django.DB-Importmodelle
# Definieren Sie die Modellklasse für die Kundentabelle
Klasse Kunde (Modelle.Modell):
Name = Modelle.CharField(max_length=100)
Adresse = Modelle.Textfeld()
E-Mail = Modelle.CharField(max_length=50)
contact_no = Modelle.CharField(max_length=20)
erstellt = Modelle.DateTimeField(auto_now_add=True)

Führen Sie die machenmigrationen Befehl zum Erstellen einer neuen Migration basierend auf den von den Modellen vorgenommenen Änderungen.

$ python3 verwalten.py makemigrations serialapp

Führen Sie die Wandern Befehl, um die SQL-Befehle auszuführen und alle Tabellen in der Datenbank zu erstellen, die im Modelle.py Datei.

$ python3 verwalten.py migrieren

Ändern Sie den Inhalt der Administrator.py Datei mit folgendem Inhalt. Hier, der Kunde Klasse der Modelle wird registriert mit das Register() Methode zum Anzeigen der Kunden Tabellen im Django-Administrations-Dashboard.

Administrator.py

# Admin-Modul importieren
von django.contrib import admin
# Importieren Sie das Kundenmodell
von .Modelle importieren Kunde
# Registrieren Sie das Kundenmodell
Administrator.Seite? ˅.registrieren (Kunde)

URLs.py

von django.URL-Importpfad
von django.contrib import admin
URLmuster = [
# Definiere den Pfad für admin
path('admin/', admin.Seite? ˅.URLs),
]

Fügen Sie Datensätze in die Tabelle ein:

Öffnen Sie die Django-Administrationsseite und fügen Sie einige Datensätze in die Kunden Tabelle, die dem Browser im JSON-Format angezeigt wird. Hier wurden drei Datensätze eingefügt.

Ändern Sie die Ansichten.py:

Öffne das Ansichten.py Datei aus dem Serienapp und ersetze den Inhalt durch das folgende Skript. Kundenliste -Klasse ist definiert, um alle Datensätze der Kunden zu serialisieren und die Daten im JSON-Format an den Browser zurückzugeben. Kundendetails -Klasse ist definiert, um den jeweiligen Kundendatensatz basierend auf dem ID-Wert zu serialisieren und die Browserdaten im JSON-Format zurückzugeben. KundeSerializer ist eine Serializer-Datei, die im nächsten Teil dieses Tutorials erstellt wurde.

Ansichten.py

# Importieren von Generika aus dem Django REST Framework
aus rest_framework Generika importieren
# Kundenmodell importieren
von .Modelle importieren Kunde
# Importieren Sie CustomerSerializer von Serializern
von .Serializer importieren CustomerSerializer
# Klasse definieren, um alle Datensätze der Kundentabelle in JSON zu konvertieren
Klasse CustomerList(Generika.ListCreateAPIView):
Abfragemenge = Kunde.Objekte.alle()
serializer_class = CustomerSerializer
# Klasse definieren, um den jeweiligen Datensatz der Kundentabelle in JSON zu konvertieren
Klasse CustomerDetail (Generika).AbrufenUpdateDestroyAPIView):
Abfragemenge = Kunde.Objekte.alle()
serializer_class = CustomerSerializer

Serializer erstellen:

Erstellen Serialisierer.py Datei am selben Speicherort der Ansichten.py Datei mit folgendem Skript. ModellSerializer Klasse wird hier verwendet, um zu erstellen KundeSerializer Klasse, die die Serializer-Klasse mit den Feldern des Kundenmodells zurückgibt. Die Felder des Kundenmodells, die in das JSON-Format konvertiert werden, sind in der Meta Klasse.

Serialisierer.py

# Serializer-Modul aus Django REST Framework importieren
from rest_framework import serializers
# Kundenmodell importieren
von .Modelle importieren Kunde
# Definieren Sie die benutzerdefinierte Serializer-Klasse, um die Felder des Kundenmodells in JSON zu konvertieren
Klasse CustomerSerializer (Serializer.ModellSerializer):
Klasse Meta:
Modell = Kunde
Felder = ('id', 'name', 'address', 'email', 'contact_no')

Ändern Sie die URLs.py-Datei:

Ändern Sie den Inhalt der URLs.py Datei mit folgendem Skript. Im Skript wird das 'Kunden/' Pfad ist definiert, um alle Datensätze der Kunden Tabelle im JSON-Format und die 'Kunden//' Pfad ist definiert, um die jeweiligen Daten des data Kunden Tabelle im JSON-Format basierend auf ID-Wert.

URLs.py

# Admin-Modul importieren
von django.contrib import admin
# Pfad importieren und Modul einbinden
von django.URL-Importpfad
# Importieren Sie die Ansichten
aus SerialApp-Importansichten
# Importieren von format_suffix_patterns aus Django REST Framework
von rest_framework.URLmuster importieren format_suffix_patterns
URLmuster = [
# Definiere den Pfad für admin
path('admin/', admin.Seite? ˅.URLs),
# Definieren Sie den Pfad, um alle Kundendaten im JSON-Format zu erhalten
path('Kunden/', Aufrufe.Kundenliste.as_view()),
# Definieren Sie den Pfad, um die jeweiligen Kundendaten basierend auf der ID im JSON-Format zu erhalten
path('Kunden//', Aufrufe.Kundendetails.as_view()),
]
urlpatterns = format_suffix_patterns (urlpatterns)

Alle Datensätze der Kundentabelle werden im JSON-Format angezeigt, wenn die folgende URL ausgeführt wird.

http://localhost:8000/customers

Der Datensatz des zweiten Kunden wird im JSON-Format angezeigt, wenn die folgende URL ausgeführt wird.

http://localhost:8000/customers/2

Fazit:

Die Verwendung von Serializern in der Django-Anwendung zum Konvertieren der Modellinstanz in das JSON-Format wurde in diesem Tutorial mithilfe eines einfachen Skripts gezeigt. Die Django-Benutzer werden den Zweck der Verwendung von Serializern verstehen und sie bei Bedarf in ihrer Anwendung anwenden, nachdem sie dieses Tutorial gelesen haben.

So zeigen Sie OSD-Overlay in Vollbild-Linux-Apps und -Spielen an
Das Spielen von Spielen im Vollbildmodus oder die Verwendung von Apps im ablenkungsfreien Vollbildmodus kann Sie von relevanten Systeminformationen ab...
Top 5 Karten zur Spielaufnahme
Wir alle haben Streaming-Gameplays auf YouTube gesehen und geliebt. PewDiePie, Jakesepticye und Markiplier sind nur einige der Top-Gamer, die Millione...
So entwickeln Sie ein Spiel unter Linux
Vor einem Jahrzehnt hätten nicht viele Linux-Benutzer vorhergesagt, dass ihr Lieblingsbetriebssystem eines Tages eine beliebte Spieleplattform für kom...