Django

Kuidas kasutada Django Serializerit

Kuidas kasutada Django Serializerit
Serialisaatorit kasutatakse Djangos mudeli eksemplaride või päringukomplektide teisendamiseks Pythoni toega andmetüüpideks, mida saab hõlpsasti renderdada JSON-, XML- või muudesse vormingutesse. Deserialiseerimist saavad teha ka serialiseerijad, et saada algsed andmed jadastatud andmetest tagasi. See funktsioon on saadaval Django REST Frameworkis. Niisiis peavad kasutajad serialiseerijate kasutamiseks selle raamistiku installima. Iga veebisaidi veebileht võib sisaldada HTML-i, CSS-i ja andmebaasitabelite andmeid. Kuid API ei mõista seda tüüpi sisu ja saab aru ainult algandmetest, see tähendab JSON-i andmetest. Selles juhendis on näidatud, kuidas serialiseerijaid saab mudeli eksemplari JSON-vormingusse teisendada.

Eeldused:

Enne selle õpetuse skripti harjutamist peate täitma järgmised ülesanded.

  1. Installige Django versioon 3+ Ubuntu 20+ (eelistatult)
  2. Looge Django projekt
  3. Käivitage Django server, et kontrollida, kas server töötab korralikult või mitte.

Serialiseerijatele Django rakenduse seadistamine:

Django nimelise rakenduse loomiseks käivitage järgmine käsk serialapp.

$ python3 hallata.py startapp serialapp

Käivitage järgmine käsk, et luua kasutaja Django andmebaasile juurdepääsuks. Kui olete kasutaja varem loonud, ei pea te käsku käivitama.

$ python3 hallata.py loob ülikasutaja

Django REST Framework installimiseks käivitage järgmine käsk.

$ pip3 installige djangorestframework

Lisage faili rest_framework ja rakenduse nimi INSTALLED_APP osa seaded.py faili.

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

Looge andmebaasitabeli mudel:

Ava mudelid.py fail failist serialapp kaust ja lisage järgmise skripti struktuuri määratlemiseks klientidele tabelid. Klient klass on määratletud nimega tabeli loomiseks klientidele koos nimi, aadress, e-posti aadress, kontakti nr, ja loodud väljad. Siin, nimi, e-posti aadress, ja kontakti nr väljad salvestavad märkide andmed, aadress väli salvestab tekstiandmed ja loodud väli salvestab kuupäeva ja kellaaja andmed.

mudelid.py

# Impordi mudelite moodul
alates django.db impordimudelid
# Määratlege klienditabeli mudeliklass
klassi klient (mudelid.Mudel):
nimi = mudelid.CharField (max_pikkus = 100)
aadress = mudelid.Tekstiväli()
email = mudelid.CharField (max_pikkus = 50)
contact_no = mudelid.CharField (max_pikkus = 20)
loodud = mudelid.DateTimeField (auto_now_add = True)

Käivitage makemigratsioonid käsk luua uus ränne mudelite tehtud muudatuste põhjal.

$ python3 hallata.py makemigrations serialapp

Käivitage rändama käsk SQL-i käskude käivitamiseks ja kõigi tabelite loomiseks andmebaasis määratletud andmebaasis mudelid.py faili.

$ python3 hallata.py rännata

Muutke sisu admin.py järgmise sisuga fail. Siin, klient klassi mudelid registreeritakse, kasutades register () meetod klientidele tabelid Django halduse juhtpaneelil.

admin.py

# Impordi administraatori moodul
alates django.kaastöö impordi admin
# Importige kliendi mudel
alates .mudelid impordivad klienti
# Registreerige kliendimudel
admin.sait.registreeru (klient)

URL-id.py

alates django.URL-ide importimise tee
alates django.kaastöö impordi admin
urlpatterns = [
# Määrake administraatori tee
tee ('admin /', admin.sait.URL-id),
]

Lisage tabelisse kirjed:

Avage leht Django Administration ja lisage mõned kirjed klientidele brauserile kuvatud tabel JSON-vormingus. Siia on lisatud kolm kirjet.

Muutke vaateid.py:

Ava vaated.py fail failist serialapp ja asendage sisu järgmise skriptiga. Kliendiloend klass on määratletud kõigi klientide kirjete järjestamiseks ja andmete tagastamiseks brauserisse JSON-vormingus. Kliendi üksikasjad klass on määratletud konkreetse kliendikirje järjestamiseks ID-väärtuse põhjal ja brauseri andmete tagastamiseks JSON-vormingus. CustomerSerializer on serialiseerimisfail, mis on loodud selle õpetuse järgmises osas.

vaated.py

# Importige geneerilisi aineid Django REST raamistikust
alates rest_framework impordi üldised
# Importige kliendi mudel
alates .mudelid impordivad klienti
# Importige CustomerSerializer serialiseerijatest
alates .serialiseerijad impordivad CustomerSerializerit
# Määratlege klientide tabeli kõigi kirjete teisendamiseks JSON-i klass
klassi Kliendiloend (üldised.ListCreateAPIView):
queryset = klient.objektid.kõik ()
serializer_class = CustomerSerializer
# Defineerige klientide tabeli konkreetse kirje teisendamiseks JSON
klassi CustomerDetail (üldised.RetrieveUpdateDestroyAPIView):
queryset = klient.objektid.kõik ()
serializer_class = CustomerSerializer

Loo Serializer:

Loo serialiseerijad.py faili samas asukohas vaated.py fail järgmise skriptiga. ModelSerializer klassi kasutatakse siin loomiseks CustomerSerializer klass, mis tagastab seeriatootjate klassi kliendi mudeli väljadega. JSON-vormingusse teisendatavad kliendimudeli väljad on mainitud dokumendis Meta klass.

serialiseerijad.py

# Importige serialiseerimismoodul Django REST Frameworkist
alates rest_framework impordi seerialiseerijad
# Importige kliendi mudel
alates .mudelid impordivad klienti
# Määratlege kliendi mudeli väljad JSON-iks teisendamiseks kohandatud seerialiseerijate klass
klassi CustomerSerializer (serialiseerijad.ModelSerializer):
klassi Meta:
mudel = klient
väljad = ('id', 'nimi', 'aadress', 'e-post', 'kontakt_no')

Muutke URL-e.py-fail:

Muutke sisu URL-id.py fail järgmise skriptiga. Skriptis onkliendid /"on määratletud kõigi kirjete kuvamiseks klientidele tabel JSON-vormingus ja 'kliendid //"tee on määratletud, et kuvada konkreetseid andmeid klientidele tabel JSON-vormingus ID-väärtuse põhjal.

URL-id.py

# Impordi administraatori moodul
alates django.kaastöö impordi admin
# Impordi tee ja kaasake moodul
alates django.URL-ide importimise tee
# Importige vaated
serialappi impordivaadetest
# Importige Django REST raamistikust format_suffix_patterns
alates rest_framework.urlpatterns impordi format_suffix_patterns
urlpatterns = [
# Määrake administraatori tee
tee ('admin /', admin.sait.URL-id),
# Määratlege tee kõigi klientide andmete saamiseks JSON-vormingus
tee ('kliendid /', vaated.Kliendiloend.as_view ()),
# Määratlege ID-põhiste konkreetsete kliendiandmete hankimise tee JSON-vormingus
tee ('kliendid //', vaated.Kliendi üksikasjad.as_view ()),
]
urlpatterns = format_suffix_patterns (urlpatterns)

Kõiki klientide tabeli kirjeid kuvatakse JSON-vormingus, kui järgmine URL täidetakse.

http: // localhost: 8000 / klienti

Teise kliendi kirje kuvatakse JSON-vormingus, kui järgmine URL täidetakse.

http: // localhost: 8000 / customers / 2

Järeldus:

Serialisaatorite kasutamine Django rakenduses mudeli eksemplari teisendamiseks JSON-vormingusse on selles õpetuses näidatud lihtsa skripti abil. Django kasutajad saavad pärast selle õpetuse lugemist aru serialiseerijate kasutamise eesmärgist ja rakendavad neid vajadusel oma rakenduses.

Nende tasuta tööriistade abil lisage Windows 10-le hiire liigutused
Viimastel aastatel on arvutid ja operatsioonisüsteemid palju arenenud. Oli aeg, mil kasutajad pidid failihaldurites navigeerimiseks kasutama käske. Na...
Juhtige ja hallake hiire liikumist mitme kuvari vahel Windows 10-s
Dual Display Mouse Manager võimaldab teil kontrollida ja konfigureerida hiire liikumist mitme monitori vahel, aeglustades selle liikumist piiri läheda...
WinMouse võimaldab teil kohandada ja parandada hiirekursori liikumist Windowsi arvutis
Kui soovite oma hiirekursori vaikefunktsioone paremaks muuta, kasutage vabavara WinMouse. See lisab rohkem funktsioone, mis aitavad teil alandlikust h...