Django

Kaip naudoti „Django Serializer“

Kaip naudoti „Django Serializer“
Serializatorius naudojamas „Django“, norint konvertuoti modelio egzempliorius ar užklausų rinkinius į python palaikomus duomenų tipus, kuriuos galima lengvai perteikti į JSON, XML ar kitus formatus. Dezerializaciją taip pat gali atlikti serializatoriai, kad gautų pirminius duomenis iš serijinių duomenų. Ši funkcija pasiekiama „Django REST Framework“. Taigi vartotojai turi įdiegti šią sistemą, kad galėtų naudoti serializatorius. Bet kuriame svetainės tinklalapyje gali būti HTML, CSS ir duomenų iš duomenų bazės lentelių. Tačiau API nesupranta šių tipų turinio ir gali suprasti tik neapdorotus duomenis, tai yra, JSON duomenis. Kaip naudotis serializatoriais galima paversti modelio egzempliorių į JSON formatą, parodyta šioje pamokoje.

Būtinos sąlygos:

Prieš praktikuodami šios mokymo programos scenarijų, turite atlikti šias užduotis.

  1. Įdiekite „Django“ versiją 3+ „Ubuntu 20+“ (geriausia)
  2. Sukurkite „Django“ projektą
  3. Paleiskite „Django“ serverį ir patikrinkite, ar serveris veikia tinkamai.

Nustatykite „Django“ programą „Serializer“:

Norėdami sukurti „Django“ programą, paleiskite šią komandą serialapp.

$ python3 valdyti.py startapp serialapp

Vykdykite šią komandą, kad sukurtumėte vartotoją, kad pasiektumėte „Django“ duomenų bazę. Jei vartotoją sukūrėte anksčiau, komandos paleisti nereikia.

$ python3 valdyti.py sukurianaudotojas

Norėdami įdiegti „Django REST Framework“, vykdykite šią komandą.

$ pip3 įdiekite „djangorestframework“

Pridėkite rest_framework ir programos pavadinimą INSTALLED_APP dalis parametrus.py failą.

INSTALLED_APPS = [
… .
„rest_framework“,
„serialapp“
]

Sukurkite duomenų bazės lentelės modelį:

Atidaryk modeliai.py failą iš serialapp aplanką ir pridėkite šį scenarijų, kad apibrėžtumėte klientų stalai. Klientas klasė yra apibrėžta norint sukurti lentelę pavadinimu klientų su vardas, adresas, el. paštas, kontaktinis_nr, ir sukurta laukai. Čia, vardas, el. pašto adresas, ir kontaktinis_no laukuose bus saugomi simbolių duomenys, adresas lauke bus saugomi teksto duomenys ir sukurta lauke bus saugomi „DateTime“ duomenys.

modeliai.py

# Importuokite modelių modulį
nuo django.db importavimo modeliai
# Apibrėžkite klientų lentelės modelio klasę
klasės Klientas (modeliai.Modelis):
vardas = modeliai.„CharField“ (maks. Ilgis = 100)
adresas = modeliai.Teksto laukas()
paštas = modeliai.„CharField“ (maks. Ilgis = 50)
contact_no = modeliai.„CharField“ (maks. Ilgis = 20)
sukurtas = modeliai.DateTimeField (auto_now_add = True)

Paleiskite makemigracijos komandą sukurti naują perkėlimą, remiantis modelių atliktais pakeitimais.

$ python3 valdyti.py makemigrations serialapp

Paleiskite migruoti komandą vykdyti SQL komandas ir sukurti visas lenteles duomenų bazėje, apibrėžtoje modeliai.py failą.

$ python3 valdyti.py migruoti

Keisti administratorius.py failą su tokiu turiniu. Čia, klientas klasių modeliai registruojami naudojant registras () metodas rodyti klientų lenteles Django administracijos informacijos suvestinėje.

administratorius.py

# Importuoti administratoriaus modulį
nuo django.įnašo importo administratorius
# Importuokite kliento modelį
nuo .modeliai importuoja Klientą
# Užregistruokite kliento modelį
administratorius.svetainėje.registruotis (klientas)

URL.py

nuo django.URL importavimo kelias
nuo django.įnašo importo administratorius
urlpatterns = [
# Apibrėžkite administratoriaus kelią
kelias ('admin /', admin.svetainėje.URL),
]

Įtraukite įrašus į lentelę:

Atidarykite „Django Administration“ puslapį ir pridėkite keletą įrašų į klientų lentelė rodoma naršyklėje JSON formatu. Čia įterpti trys įrašai.

Keisti rodinius.py:

Atidaryk Peržiūrų.py failą iš serialapp ir pakeiskite turinį šiuo scenarijumi. „CustomerList“ klasė yra apibrėžta serijiniams visiems klientų įrašams ir duomenims grąžinti į naršyklę JSON formatu. „CustomerDetail“ klasė apibrėžiama tam, kad būtų suskirstytas konkretus kliento įrašas pagal ID vertę ir grąžinami naršyklės duomenys JSON formatu. „CustomerSerializer“ yra serializatorių failas, sukurtas kitoje šios mokymo dalies dalyje.

Peržiūrų.py

# Importuokite generinius vaistus iš „Django REST Framework“
iš „rest_framework“ importuoti generinius vaistus
# Importuoti kliento modelį
nuo .modeliai importuoja Klientą
# Importuokite „CustomerSerializer“ iš serializatorių
nuo .serializatoriai importuoja „CustomerSerializer“
# Apibrėžkite klasę, kad visi klientų lentelės įrašai būtų konvertuojami į JSON
klasės „CustomerList“ (bendrieji.ListCreateAPIView):
queryset = Klientas.objektai.visi ()
serializer_class = „CustomerSerializer“
# Apibrėžkite klasę, kad konkretus klientų lentelės įrašas būtų konvertuotas į JSON
klasės „CustomerDetail“ (bendrieji vaistai.RetrieveUpdateDestroyAPIView):
queryset = Klientas.objektai.visi ()
serializer_class = „CustomerSerializer“

Sukurti „Serializer“:

Kurti serializatoriai.py failas toje pačioje Peržiūrų.py failas su tokiu scenarijumi. „ModelSerializer“ klasė čia naudojama kuriant „CustomerSerializer“ klasė, kuri grąžina serializatorių klasę su kliento modelio laukais. Kliento modelio laukai, kurie bus konvertuoti į JSON formatą, yra nurodyti Meta klasė.

serializatoriai.py

# Importuokite serializatorių modulį iš „Django REST Framework“
iš „rest_framework“ importo serijinių versijų
# Importuoti kliento modelį
nuo .modeliai importuoja Klientą
# Apibrėžkite pasirinktinių serializatorių klasę, kad kliento modelio laukus paverstumėte JSON
klasės „CustomerSerializer“ (serializatoriai.„ModelSerializer“):
klasė Meta:
modelis = klientas
laukai = ('id', 'name', 'address', 'email', 'contact_no')

Pakeiskite URL.py failas:

Keisti URL.py failas su tokiu scenarijumi. Scenarijuje „klientai /"kelias yra apibrėžtas, kad būtų rodomi visi klientų lentelė JSON formatu ir 'klientai //"kelias yra apibrėžtas tam, kad būtų rodomi konkretūs klientų lentelė JSON formatu pagal ID vertę.

URL.py

# Importuoti administratoriaus modulį
nuo django.įnašo importo administratorius
# Importo kelias ir modulis
nuo django.URL importavimo kelias
# Importuokite rodinius
iš serialapp importo rodinių
# Importuokite format_suffix_patterns iš „Django REST Framework“
nuo rest_framework.urlpatterns importuoti format_suffix_patterns
urlpatterns = [
# Apibrėžkite administratoriaus kelią
kelias ('admin /', admin.svetainėje.URL),
# Apibrėžkite kelią, kaip gauti visus klientų duomenis JSON formatu
kelias („klientai /“, peržiūros.„CustomerList“.as_view ()),
# Apibrėžkite kelią gauti konkrečius kliento duomenis pagal ID JSON formatu
kelias („klientai //“, peržiūros.„CustomerDetail“.as_view ()),
]
urlpatterns = format_suffix_patterns (urlpatterns)

Visi klientų lentelės įrašai bus rodomi JSON formatu, jei bus vykdomas toliau nurodytas URL.

http: // localhost: 8000 / klientai

Antrojo kliento įrašas bus rodomas JSON formatu, jei bus vykdomas toliau nurodytas URL.

http: // localhost: 8000 / klientai / 2

Išvada:

Serializatorių naudojimas „Django“ programoje, norint paversti modelio egzempliorių į JSON formatą, parodytas šioje pamokoje naudojant paprastą scenarijų. „Django“ vartotojai supras serializatorių naudojimo tikslą ir prireikus pritaikys juos savo programoje perskaitę šią pamoką.

Atvirojo kodo komercinių žaidimų variklių uostai
Nemokami atvirojo kodo ir įvairių platformų žaidimų varikliai gali būti naudojami žaidžiant senus ir kai kuriuos gana naujus žaidimų pavadinimus. Šiam...
Geriausi „Linux“ komandinės eilutės žaidimai
Komandų eilutė yra ne tik jūsų didžiausias sąjungininkas naudojant „Linux“, bet ir pramogų šaltinis, nes ją galite naudoti norėdami žaisti daug įdomių...
Geriausios „Linux“ skirtos „Gamepad“ žemėlapių sudarymo programos
Jei jums patinka žaisti žaidimus „Linux“ su žaidimų pultu, o ne įprasta klaviatūra ir pelės įvesties sistema, yra keletas jums naudingų programų. Daug...