Būtinos sąlygos:
Prieš praktikuodami šios mokymo programos scenarijų, turite atlikti šias užduotis.
- Įdiekite „Django“ versiją 3+ „Ubuntu 20+“ (geriausia)
- Sukurkite „Django“ projektą
- 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 serialappVykdykite š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 sukurianaudotojasNorė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 serialappPaleiskite migruoti komandą vykdyti SQL komandas ir sukurti visas lenteles duomenų bazėje, apibrėžtoje modeliai.py failą.
$ python3 valdyti.py migruotiKeisti 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 keliasnuo 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 /
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ą.