Forutsetninger:
Før du trener på skriptet i denne opplæringen, må du fullføre følgende oppgaver.
- Installer Django versjon 3+ på Ubuntu 20+ (helst)
- Lag et Django-prosjekt
- 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 serialappKjø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 skaperbrukerKjør følgende kommando for å installere Django REST Framework.
$ pip3 installer djangorestframeworkLegg 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 modellmodulenfra 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 serialappKjør migrere kommandoen for å utføre SQL-kommandoene og opprette alle tabeller i databasen definert i modeller.py fil.
$ python3 administrere.py migrereEndre 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 administrasjonsmodulfra django.bidrag importadministrator
# Importer kundemodellen
fra .modeller importerer kunde
# Registrer kundemodellen
admin.nettstedet.registrer (kunde)
nettadresser.py
fra django.URL-adresse for importfra 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 Frameworkfra 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 Frameworkfra 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 /
nettadresser.py
# Importer administrasjonsmodulfra 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.