Django

Sådan bruges Django Serializers

Sådan bruges Django Serializers
Serializer bruges i Django til at konvertere modelforekomster eller forespørgselssæt til python-understøttede datatyper, der let kan gengives til JSON-, XML- eller andre formater. Deserialiseringen kan også udføres af serializers for at få de originale data tilbage fra de serialiserede data. Denne funktion er tilgængelig i Django REST Framework. Så brugerne skal installere denne ramme for at bruge serialiseringerne. Enhver webside på webstedet kan indeholde HTML, CSS og data fra databasetabellerne. Men API'en forstår ikke disse typer indhold, og det kan kun forstå rådataene, det vil sige JSON-data. Hvordan denne serieudvikler kan bruges til at konvertere modelforekomsten til JSON-format, er vist i denne vejledning.

Forudsætninger:

Før du træner scriptet til denne vejledning, skal du udføre følgende opgaver.

  1. Installer Django version 3+ på Ubuntu 20+ (helst)
  2. Opret et Django-projekt
  3. Kør Django-serveren for at kontrollere, at serveren fungerer korrekt eller ej.

Konfigurer en Django-app til Serializers:

Kør følgende kommando for at oprette en Django-app med navnet serialapp.

$ python3 administrere.py startapp serialapp

Kør følgende kommando for at oprette brugeren til adgang til Django-databasen. Hvis du har oprettet brugeren før, behøver du ikke køre kommandoen.

$ python3 administrere.py skaberbruger

Kør følgende kommando for at installere Django REST Framework.

$ pip3 installerer djangorestframework

Tilføj rest_framework og appnavn i INSTALLERET_APP en del af indstillinger.py fil.

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

Opret en model til databasetabellen:

Åbn modeller.py fil fra serialapp mappen og tilføj følgende script for at definere strukturen af kunder tabeller. Kunde klasse er defineret til at oprette en tabel med navnet kunder med navn, adresse, e-mail, contact_no, og oprettet felter. Her, navn, e-mail, og kontakt_nr felter gemmer karakterdata, adressen felt gemmer tekstdataene og oprettet feltet gemmer DateTime-data.

modeller.py

# Importer modelmodulet
fra django.db import modeller
# Definer modelklassen til kundetabellen
klasse kunde (modeller.Model):
navn = modeller.CharField (max_length = 100)
adresse = modeller.Tekstfelt()
e-mail = modeller.CharField (max_length = 50)
contact_no = modeller.CharField (max_length = 20)
oprettet = modeller.DateTimeField (auto_now_add = True)

Kør makemigrationer kommando til at oprette en ny migration baseret på ændringer foretaget af modellerne.

$ python3 administrere.py makemigrations serialapp

Kør migrere kommando til at udføre SQL-kommandoer og oprette alle tabeller i databasen defineret i modeller.py fil.

$ python3 administrere.py migrere

Rediger indholdet af admin.py fil med følgende indhold. Her, kunden klasse af modeller registreres ved hjælp af registret () metode til at vise kunder tabeller i Django-administrationens dashboard.

admin.py

# Importér admin-modul
fra django.import importadministrator
# Importer kundemodellen
fra .modeller importerer kunde
# Registrer kundemodellen
admin.websted.registrer (kunde)

webadresser.py

fra django.webadresser til import af sti
fra django.import importadministrator
urlmønstre = [
# Definer stien til admin
sti ('admin /', admin.websted.webadresser),
]

Tilføj poster i tabellen:

Åbn siden Django Administration, og tilføj nogle poster til kunder tabel vist til browseren i JSON-format. Her er der indsat tre poster.

Rediger visningerne.py:

Åbn synspunkter.py fil fra serialapp og udskift indholdet med følgende script. Kundeliste klasse er defineret til at serieisere alle kundens poster og returnere dataene til browseren i JSON-format. CustomerDetail klasse er defineret til at serieisere den bestemte kundeoptegnelse baseret på ID-værdien og returnere browserens data i JSON-format. CustomerSerializer er en serialiseringsfil, der er oprettet i den næste del af denne vejledning.

synspunkter.py

# Importer generiske stoffer fra Django REST Framework
fra rest_framework importerer generics
# Importer kundemodel
fra .modeller importerer kunde
# Importer CustomerSerializer fra serializers
fra .serializers importerer CustomerSerializer
# Definer klasse for at konvertere alle poster i kundetabellen til JSON
klasse CustomerList (generiske.ListCreateAPIView):
queryset = kunde.genstande.alle()
serializer_class = CustomerSerializer
# Definer klasse for at konvertere den bestemte registrering af kundetabellen til JSON
klasse CustomerDetail (generiske.RetrieveUpdateDestroyAPIView):
queryset = kunde.genstande.alle()
serializer_class = CustomerSerializer

Opret Serializer:

skab serialisatorer.py fil samme sted som synspunkter.py fil med følgende script. ModelSerializer klasse bruges her til at oprette CustomerSerializer klasse, der returnerer klassen serializers med felterne i Kundemodellen. Kundemodelfelterne, der konverteres til JSON-format, er nævnt i Meta klasse.

serialisatorer.py

# Importer serialiseringsmodul fra Django REST Framework
fra rest_framework importerer serialiseringer
# Importer kundemodel
fra .modeller importerer kunde
# Definer den tilpassede serialiseringsklasse for at konvertere felterne Kundemodel til JSON
klasse CustomerSerializer (serializers.ModelSerializer):
klasse Meta:
model = kunde
felter = ('id', 'navn', 'adresse', 'e-mail', 'contact_no')

Rediger webadresserne.py-fil:

Rediger indholdet af webadresser.py fil med følgende script. I manuskriptet står 'kunder /stien er defineret til at vise alle poster af kunder tabel i JSON-format, og 'kunder //stien er defineret til at vise de specifikke data for kunder tabel i JSON-format baseret på ID-værdi.

webadresser.py

# Importér admin-modul
fra django.import importadministrator
# Importer sti og inkluder modul
fra django.webadresser til import af sti
# Importer visningerne
fra serialapps importvisninger
# Importer format_suffix_mønstre fra Django REST Framework
fra rest_framework.urlmønstre importerer format_suffix_mønstre
urlmønstre = [
# Definer stien til admin
sti ('admin /', admin.websted.webadresser),
# Definer stien til at få alle kundedata i JSON-format
sti ('kunder /', synspunkter.Kundeliste.som_visning ()),
# Definer stien til at hente bestemte kundedata baseret på ID i JSON-format
sti ('kunder //', visninger.CustomerDetail.som_visning ()),
]
urlmønstre = format_suffix_mønstre (urlmønstre)

Alle optegnelser over kundetabellen vises i JSON-format, hvis den følgende URL udføres.

http: // localhost: 8000 / kunder

Den anden kundes post vises i JSON-format, hvis følgende URL udføres.

http: // localhost: 8000 / kunder / 2

Konklusion:

Brugen af ​​serializers i Django-applikationen til at konvertere modelinstansen til JSON-format har vist i denne vejledning ved hjælp af et simpelt script. Django-brugerne vil forstå formålet med at bruge serialiseringer og anvende dem i deres applikation, hvis det er nødvendigt efter at have læst denne vejledning.

Installer nyeste Dolphin Emulator til Gamecube & Wii på Linux
Dolphin Emulator giver dig mulighed for at spille dine valgte Gamecube & Wii-spil på Linux Personal Computers (PC). Som en frit tilgængelig og open s...
Sådan bruges GameConqueror Cheat Engine i Linux
Artiklen dækker en vejledning om brug af GameConqueror-snydemotoren i Linux. Mange brugere, der spiller spil på Windows, bruger ofte "Cheat Engine" -a...
Bedste spilkonsolemulatorer til Linux
Denne artikel viser en liste over populære spilkonsolemuleringssoftware, der er tilgængelig til Linux. Emulation er et softwarekompatibilitetslag, der...