Django

Hur man använder Django Serializers

Hur man använder Django Serializers
Serializer används i Django för att konvertera modellinstanser eller querysets till pytonstödda datatyper som enkelt kan återges till JSON-, XML- eller andra format. Deserialiseringen kan också göras av serialiserare för att få tillbaka originaldata från seriell data. Denna funktion är tillgänglig i Django REST Framework. Så, användarna måste installera detta ramverk för att använda serialiserarna. Varje webbsida kan innehålla HTML, CSS och data från databastabellerna. Men API: n förstår inte dessa typer av innehåll, och det kan bara förstå rådata, det vill säga JSON-data. Hur serierna kan användas för att konvertera modellinstansen till JSON-format har visats i denna handledning.

Förutsättningar:

Innan du tränar på skriptet i den här självstudien måste du slutföra följande uppgifter.

  1. Installera Django version 3+ på Ubuntu 20+ (helst)
  2. Skapa ett Django-projekt
  3. Kör Django-servern för att kontrollera att servern fungerar korrekt eller inte.

Ställ in en Django-app för Serializers:

Kör följande kommando för att skapa en Django-app med namnet serialapp.

$ python3 hantera.py startapp serialapp

Kör följande kommando för att skapa användaren för åtkomst till Django-databasen. Om du har skapat användaren tidigare behöver du inte köra kommandot.

$ python3 hantera.py skaparanvändare

Kör följande kommando för att installera Django REST Framework.

$ pip3 installera djangorestframework

Lägg till rest_framework och appnamn i INSTALLERAD_APP del av inställningar.py fil.

INSTALLED_APPS = [
.. .
'rest_framework',
'serialapp'
]

Skapa en modell för databastabellen:

Öppna modeller.py fil från serialapp mappen och lägg till följande skript för att definiera strukturen för kunder tabeller. Kund klass definieras för att skapa en tabell med namnet kunder med namn, adress, e-post, kontakt_nr, och skapad fält. Här, namn, e-post, och contact_no fält lagrar teckendata, adressen fältet lagrar textdata och skapad fältet kommer att lagra DateTime-data.

modeller.py

# Importera modellmodulen
från django.db-importmodeller
# Definiera modellklassen för kundtabellen
klass Kund (modeller.Modell):
namn = modeller.CharField (max_length = 100)
adress = modeller.Textfält()
e-post = modeller.CharField (max_length = 50)
contact_no = modeller.CharField (max_length = 20)
skapade = modeller.DateTimeField (auto_now_add = True)

Springa det makemigrationer kommando för att skapa en ny migration baserat på de ändringar som gjorts av modellerna.

$ python3 hantera.py makemigrations serialapp

Springa det flytta kommando för att utföra SQL-kommandon och skapa alla tabeller i databasen definierad i modeller.py fil.

$ python3 hantera.py migrera

Ändra innehållet i administration.py fil med följande innehåll. Här, kunden klass av modellerna registreras med hjälp av registret() metod för att visa kunder i Django-administrationspanelen.

administration.py

# Importera administratörsmodul
från django.bidrag importadministratör
# Importera kundmodellen
från .modeller importerar kund
# Registrera kundmodellen
administration.webbplats.registrera (kund)

webbadresser.py

från django.webbadress för webbadresser
från django.bidrag importadministratör
urlmönster = [
# Definiera sökvägen för admin
sökväg ('admin /', admin.webbplats.webbadresser),
]

Lägg till poster i tabellen:

Öppna Django Administration-sidan och lägg till några poster i kunder visas för webbläsaren i JSON-format. Här har tre poster införts.

Ändra vyerna.py:

Öppna utsikt.py fil från serialapp och ersätt innehållet med följande skript. Kundlista klass definieras för att serieera alla kundens poster och returnera data till webbläsaren i JSON-format. Kundinformation klass definieras för att serieera den specifika kundposten baserat på ID-värdet och returnera webbläsarens data i JSON-format. CustomerSerializer är en serialiseringsfil som har skapats i nästa del av denna handledning.

utsikt.py

# Importera generika från Django REST Framework
från rest_framework importera generika
# Importera kundmodell
från .modeller importerar kund
# Importera CustomerSerializer från serialiserare
från .serializers importerar CustomerSerializer
# Definiera klass för att konvertera alla poster i kundtabellen till JSON
klass Kundlista (generiska.ListCreateAPIView):
queryset = Kund.föremål.Allt()
serializer_class = CustomerSerializer
# Definiera klass för att konvertera den specifika posten för kundtabellen till JSON
klass CustomerDetail (generiska.RetrieveUpdateDestroyAPIView):
queryset = Kund.föremål.Allt()
serializer_class = CustomerSerializer

Skapa Serializer:

Skapa serialiserare.py filen på samma plats som utsikt.py fil med följande skript. ModelSerializer klass används här för att skapa CustomerSerializer klass som returnerar serialiseringsklassen med fälten i kundmodellen. Kundmodellfält som kommer att konverteras till JSON-format nämns i Meta klass.

serialiserare.py

# Importera serialiseringsmodul från Django REST Framework
från rest_framework importerar serialiserare
# Importera kundmodell
från .modeller importerar kund
# Definiera den anpassade serieklassificeringsklassen för att konvertera kundmodellfälten till JSON
klass CustomerSerializer (serialiserare.ModelSerializer):
klass Meta:
modell = Kund
fält = ('id', 'namn', 'adress', 'e-post', 'contact_no')

Ändra webbadresserna.py-fil:

Ändra innehållet i webbadresser.py fil med följande skript. I manuset står 'kunder /'sökväg definieras för att visa alla poster för kunder tabell i JSON-format och 'kunder //'sökväg definieras för att visa de specifika uppgifterna för kunder tabell i JSON-format baserat på ID-värde.

webbadresser.py

# Importera administratörsmodul
från django.bidrag importadministratör
# Importera sökväg och inkludera modul
från django.webbadress för webbadresser
# Importera vyerna
från importprogram från serialapp
# Importera format_suffix_mönster från Django REST Framework
från rest_framework.urlmönster importerar format_suffix_mönster
urlmönster = [
# Definiera sökvägen för admin
sökväg ('admin /', admin.webbplats.webbadresser),
# Definiera sökvägen för att få all kunddata i JSON-format
sökväg ('kunder /', vyer.Kundlista.as_view ()),
# Definiera sökvägen för att få specifik kunddata baserat på ID i JSON-format
sökväg ('kunder //', vyer.Kundinformation.as_view ()),
]
urlpatterns = format_suffix_patterns (urlpatterns)

Alla poster i kundtabellen visas i JSON-format om följande URL kommer att köras.

http: // localhost: 8000 / kunder

Den andra kundens post visas i JSON-format om följande URL körs.

http: // localhost: 8000 / kunder / 2

Slutsats:

Användningen av serialiserare i Django-applikationen för att konvertera modellinstansen till JSON-format har visats i denna handledning med ett enkelt skript. Django-användare kommer att förstå syftet med att använda serialiserare och tillämpa dem i deras applikation om det behövs efter att ha läst denna handledning.

Hur man laddar ner och spelar Sid Meier's Civilization VI på Linux
Introduktion till spelet Civilization 6 är ett modernt intag av det klassiska konceptet som introducerades i serien Age of Empires-spel. Idén var gans...
Hur man installerar och spelar Doom på Linux
Introduktion till Doom Doom-serien har sitt ursprung på 90-talet efter att den ursprungliga Doom släpptes. Det blev en omedelbar hit och från den tide...
Vulkan för Linux-användare
Med varje ny generation grafikkort ser vi spelutvecklare driva gränserna för grafisk trohet och komma ett steg närmare fotorealism. Men trots all kred...