Django

Hvordan bruke Django Serializers

Hvordan bruke Django Serializers
Serializer brukes i Django for å konvertere modellforekomster eller spørresett til python-støttede datatyper som enkelt kan gjengis til JSON, XML eller andre formater. Deserialiseringen kan også gjøres av serializers for å få tilbake de originale dataene fra de serialiserte dataene. Denne funksjonen er tilgjengelig i Django REST Framework. Så brukerne må installere dette rammeverket for å bruke serielliseringene. Enhver webside på nettstedet kan inneholde HTML, CSS og data fra databasetabellene. Men API forstår ikke disse typer innhold, og det kan bare forstå rådataene, det vil si JSON-data. Hvordan serialisatorene kan brukes til å konvertere modellforekomsten til JSON-format, har vist i denne veiledningen.

Forutsetninger:

Før du trener på skriptet i denne opplæringen, må du fullføre følgende oppgaver.

  1. Installer Django versjon 3+ på Ubuntu 20+ (helst)
  2. Lag et Django-prosjekt
  3. Kjør Django-serveren for å kontrollere at serveren fungerer som den skal eller ikke.

Konfigurer en Django-app for Serializers:

Kjør følgende kommando for å opprette en Django-app med navnet serialapp.

$ python3 administrere.py startapp serialapp

Kjør følgende kommando for å opprette brukeren for tilgang til Django-databasen. Hvis du har opprettet brukeren før, trenger du ikke å kjøre kommandoen.

$ python3 administrere.py skaperbruker

Kjør følgende kommando for å installere Django REST Framework.

$ pip3 installer djangorestframework

Legg til rest_framework og appnavn i INSTALLERT_APP del av innstillinger.py fil.

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

Lag en modell for databasetabellen:

Åpne modeller.py fil fra serialapp mappen og legg til følgende skript for å definere strukturen til kunder bord. Kunde klasse er definert for å lage en tabell som heter kunder med navn, adresse, e-post, contact_no, og opprettet Enger. Her, navn, e-post, og kontaktnummer felt vil lagre karakterdata, adressen feltet vil lagre tekstdataene, og opprettet feltet vil lagre DateTime-dataene.

modeller.py

# Importer modellmodulen
fra django.db import modeller
# Definer modellklassen for kundetabellen
klasse Kunde (modeller.Modell):
navn = modeller.CharField (max_length = 100)
adresse = modeller.Tekstfelt()
e-post = modeller.CharField (max_length = 50)
contact_no = modeller.CharField (max_length = 20)
opprettet = modeller.DateTimeField (auto_now_add = True)

Kjør makemigrasjoner kommando for å opprette en ny migrering basert på endringene som er gjort av modellene.

$ python3 administrere.py makemigrations serialapp

Kjør migrere kommandoen for å utføre SQL-kommandoene og opprette alle tabeller i databasen definert i modeller.py fil.

$ python3 administrere.py migrere

Endre innholdet i admin.py fil med følgende innhold. Her, kunden klasse av modellene registreres ved hjelp av registeret () metode for å vise kunder tabeller i Django-administrasjons dashbordet.

admin.py

# Importer administrasjonsmodul
fra django.bidrag importadministrator
# Importer kundemodellen
fra .modeller importerer kunde
# Registrer kundemodellen
admin.nettstedet.registrer (kunde)

nettadresser.py

fra django.URL-adresse for import
fra django.bidrag importadministrator
urlpatterns = [
# Definer banen for admin
sti ('admin /', admin.nettstedet.nettadresser),
]

Legg til poster i tabellen:

Åpne Django-administrasjonssiden og legg til noen poster i kunder vises til nettleseren i JSON-format. Her er det lagt inn tre poster.

Endre visningene.py:

Åpne utsikt.py fil fra serialapp og erstatt innholdet med følgende skript. Kundeliste klasse er definert for å serieisere alle kundens poster og returnere dataene til nettleseren i JSON-format. CustomerDetail klasse er definert for å serieisere den bestemte kundeposten basert på ID-verdien og returnere nettleserens data i JSON-format. CustomerSerializer er en serialiseringsfil som er opprettet i neste del av denne opplæringen.

utsikt.py

# Importer generikk fra Django REST Framework
fra rest_framework import generiske
# Importer kundemodell
fra .modeller importerer kunde
# Importer CustomerSerializer fra serializers
fra .serializers importerer CustomerSerializer
# Definer klasse for å konvertere alle poster i kundetabellen til JSON
klasse CustomerList (generiske.ListCreateAPIView):
queryset = kunde.gjenstander.alle()
serializer_class = CustomerSerializer
# Definer klasse for å konvertere den spesielle posten til kundetabellen til JSON
klasse CustomerDetail (generiske.RetrieveUpdateDestroyAPIView):
queryset = kunde.gjenstander.alle()
serializer_class = CustomerSerializer

Lag Serializer:

Skape serialisere.py filen på samme sted som utsikt.py filen med følgende skript. ModelSerializer klasse brukes her for å lage CustomerSerializer klasse som returnerer serialiseringsklassen med feltene i Kundemodellen. Kundemodellfeltene som skal konverteres til JSON-format er nevnt i Meta klasse.

serialisere.py

# Importer serialiseringsmodul fra Django REST Framework
fra rest_framework importerer serialiserere
# Importer kundemodell
fra .modeller importerer kunde
# Definer den egendefinerte serialiseringsklassen for å konvertere feltene Kundemodell til JSON
klasse CustomerSerializer (serializers.ModelSerializer):
klasse Meta:
modell = kunde
felt = ('id', 'navn', 'adresse', 'e-post', 'contact_no')

Endre nettadressene.py-fil:

Endre innholdet i nettadresser.py filen med følgende skript. I manuset er 'kunder /banen er definert for å vise alle poster av kunder tabell i JSON-format, og 'kunder //'bane er definert for å vise bestemte data for kunder tabell i JSON-format basert på ID-verdi.

nettadresser.py

# Importer administrasjonsmodul
fra django.bidrag importadministrator
# Importer bane og inkluder modul
fra django.URL-adresse for import
# Importer visningene
fra serialapp importvisninger
# Importer format_suffix_mønstre fra Django REST Framework
fra rest_framework.urlpatterns importerer format_suffix_patterns
urlpatterns = [
# Definer banen for admin
sti ('admin /', admin.nettstedet.nettadresser),
# Definer banen for å få alle kundedata i JSON-format
sti ('kunder /', visninger.Kundeliste.as_view ()),
# Definer stien for å få bestemte kundedata basert på ID i JSON-format
sti ('kunder //', visninger.CustomerDetail.as_view ()),
]
urlpatterns = format_suffix_patterns (urlpatterns)

Alle poster i kundetabellen vil bli vist i JSON-format hvis følgende URL utføres.

http: // localhost: 8000 / kunder

Posten til den andre kunden vil vises i JSON-format hvis følgende URL utføres.

http: // localhost: 8000 / kunder / 2

Konklusjon:

Bruken av serialisatorer i Django-applikasjonen for å konvertere modellforekomsten til JSON-format har vist i denne veiledningen ved hjelp av et enkelt skript. Django-brukerne vil forstå formålet med å bruke serieutviklere og bruke dem i applikasjonen deres om nødvendig etter å ha lest denne opplæringen.

Mus Legg til musebevegelser i Windows 10 ved hjelp av disse gratisverktøyene
Legg til musebevegelser i Windows 10 ved hjelp av disse gratisverktøyene
De siste årene har datamaskiner og operativsystemer utviklet seg sterkt. Det var en tid da brukere måtte bruke kommandoer for å navigere gjennom filad...
Mus Kontroller og administrer musebevegelser mellom flere skjermer i Windows 10
Kontroller og administrer musebevegelser mellom flere skjermer i Windows 10
Dual Display Mouse Manager lar deg kontrollere og konfigurere musebevegelse mellom flere skjermer, ved å bremse bevegelsene nær grensen. Windows 10/8,...
Mus WinMouse lar deg tilpasse og forbedre musemarkørenes bevegelse på Windows PC
WinMouse lar deg tilpasse og forbedre musemarkørenes bevegelse på Windows PC
Hvis du vil forbedre standardfunksjonene til musepekeren, bruk freeware WinMouse. Det legger til flere funksjoner som hjelper deg å få mest mulig ut a...