So verwenden Sie Django -Serialisierer

So verwenden Sie Django -Serialisierer
Serializer wird in Django verwendet, um die Modellinstanzen oder QuerySets in Python -unterstützte Datentypen umzuwandeln, die leicht in JSON, XML oder andere Formate gerendert werden können. Die Deserialisierung kann auch von Serialisierern durchgeführt werden, um die ursprünglichen Daten aus den serialisierten Daten zurückzuholen. Diese Funktion ist in Django Rest Framework erhältlich. Daher müssen die Benutzer dieses Framework installieren, um die Serialisierer zu verwenden. Jede Webseite der Website kann HTML, CSS und Daten aus den Datenbanktabellen enthalten. Die API versteht diese Art von Inhalten jedoch nicht und kann nur die Rohdaten verstehen, dh JSON -Daten. Wie die Serialisierer verwendet werden können, um die Modellinstanz in JSON -Format umzuwandeln, hat in diesem Tutorial gezeigt.

Voraussetzungen:

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

  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 Serialisierer ein:

Führen Sie den folgenden Befehl aus, um eine Django -App mit dem Namen zu erstellen Serialapp.

$ python3 verwalten.PY StartApp SerialApp

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

$ python3 verwalten.Py erzeugt

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

$ pip3 install djangorestframework

Fügen Sie den Namen rast_framework und App in die hinzu Installed_app Teil der Einstellungen.py Datei.

Installed_apps = [
… .
'rest_framework' ',
'Serialapp'
]

Erstellen Sie ein Modell für die Datenbanktabelle:

Öffne das Modelle.py Datei aus der Serialapp Ordner und fügen Sie das folgende Skript hinzu, um die Struktur von zu definieren Kunden Tische. Kunde Die Klasse wird definiert, um eine Tabelle mit dem Namen zu erstellen Kunden mit Name, Adresse, E -Mail, contact_no, Und erstellt Felder. Hier, Name, E -Mail, Und contact_no Felder speichern Charakterdaten, die Adresse Das Feld speichert die Textdaten und erstellt Das Feld speichert die DateTime -Daten.

Modelle.py

# Importieren Sie das Modelsmodul
von django.DB -Importmodelle
# Definieren Sie die Modellklasse für die Kundentabelle
Klassenkunde (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)

Leiten Sie die Makemigrationen Befehl zum Erstellen einer neuen Migration basierend auf den von den Modellen vorgenommenen Änderungen.

$ python3 verwalten.PY Makemigrations SerialApp

Leiten Sie die Wandern Befehl zum Ausführen der SQL -Befehle und erstellt alle Tabellen in der in der definierten Datenbank Modelle.py Datei.

$ python3 verwalten.py migrieren

Ändern Sie den Inhalt der Administrator.py Datei mit dem folgenden Inhalt. Hier, der Kunde Die Klasse der Modelle wird durch Verwendung registriert das Register() Methode zur Anzeige der Anzeige Kunden Tabellen im Django Administration Dashboard.

Administrator.py

# Admin -Modul importieren
von django.Import Administrator beibringen
# Das Kundenmodell importieren
aus .Modelle importieren Kunden
# Registrieren Sie das Kundenmodell
Administrator.Grundstück.Registrieren (Kunde)

URLs.py

von django.URLS -Importweg
von django.Import Administrator beibringen
urlpatterns = [
# Definieren Sie den Pfad für den Administrator
Pfad ('Admin/', Administrator.Grundstück.URLs),
]

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

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

Ändern Sie die Ansichten.PY:

Öffne das Ansichten.py Datei aus der Serialapp und ersetzen Sie den Inhalt durch das folgende Skript. Kundenliste Die Klasse wird definiert, um alle Datensätze der Kunden zu serialisieren und die Daten im JSON -Format an den Browser zurückzugeben. CustomerDetail Die Klasse wird definiert, um den jeweiligen Kundendatensatz basierend auf dem ID -Wert zu serialisieren und die Daten des Browsers im JSON -Format zurückzugeben. Customerializer ist eine Serializer -Datei, die im nächsten Teil dieses Tutorials erstellt wurde.

Ansichten.py

# Generika aus dem Django Rest Framework importieren
Aus rast_framework importieren Sie Generika
# Kundenmodell importieren
aus .Modelle importieren Kunden
# Customerializer von Serializern importieren
aus .Serialisierer importieren Customerializer
# Definieren Sie die Klasse, um alle Datensätze der Kundentabelle in JSON umzuwandeln
Klassenkundenliste (Generika.ListCreateApiview):
querySet = customer.Objekte.alle()
serializer_class = customerializer
# Definieren Sie die Klasse, um den jeweiligen Datensatz der Kundentabelle in JSON umzuwandeln
Klasse CustomerDetail (Generika.Abrufendatedestroyapiview):
querySet = customer.Objekte.alle()
serializer_class = customerializer

Serializer erstellen:

Erstellen Serialisierer.py Datei am selben Ort der Ansichten.py Datei mit dem folgenden Skript. Models Die Klasse wird hier zum Erstellen verwendet Customerializer Klasse, der die Serializer -Klasse mit den Feldern des Kundenmodells zurückgibt. Die Kundenmodellfelder, die in das JSON -Format umgewandelt werden, werden in der erwähnt Meta Klasse.

Serialisierer.py

# Serializer -Modul aus dem Django -REST -Framework importieren
von rest_framework importieren Serialisierer
# Kundenmodell importieren
aus .Modelle importieren Kunden
# Definieren Sie die Klasse Custom Serializer -Klasse, um die Kundenmodellfelder in JSON umzuwandeln
Class Customerializer (Serializer.Modelleer):
Klassenmeta:
Modell = Kunde
fields = ('id', 'name', 'Adresse', 'mail', 'contact_no')

Ändern Sie die URLs.PY -Datei:

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

URLs.py

# Admin -Modul importieren
von django.Import Administrator beibringen
# Pfad importieren und Modul einschließen
von django.URLS -Importweg
# Importieren Sie die Ansichten
aus SerialApp -Importansichten
# Importieren format_suffix_patterns aus dem django rest Framework
von rest_framework.urlpatterns import format_suffix_patterns
urlpatterns = [
# Definieren Sie den Pfad für den Administrator
Pfad ('Admin/', Administrator.Grundstück.URLs),
# Definieren Sie den Pfad, um alle Kundendaten im JSON -Format zu erhalten
Pfad ('Kunden/', Ansichten.Kundenliste.As_view ()),
# Definieren Sie den Pfad, um die jeweiligen Kundendaten basierend auf der ID im JSON -Format zu erhalten
Pfad ('Kunden //', Ansichten.CustomerDetail.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/Kunden

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

http: // localhost: 8000/Kunden/2

Abschluss:

Die Verwendung von Serialisierern in der Django -Anwendung, um die Modellinstanz in JSON -Format umzuwandeln, hat in diesem Tutorial mithilfe eines einfachen Skripts gezeigt. Die Django -Benutzer verstehen den Zweck der Verwendung von Serialisierern und wenden Sie sie nach Bedarf nach dem Lesen dieses Tutorials in ihrer Anwendung an.