Pogoji:
Pred vadbo skripta te vaje morate opraviti naslednje naloge.
- Namestite različico Django 3+ na Ubuntu 20+ (po možnosti)
- Ustvarite projekt Django
- Zaženite strežnik Django, da preverite, ali strežnik deluje pravilno ali ne.
Nastavite aplikacijo Django za serializatorje:
Zaženite naslednji ukaz, da ustvarite aplikacijo Django z imenom serialapp.
$ python3 upravljanje.py startapp serialappZaženite naslednji ukaz, da ustvarite uporabnika za dostop do baze podatkov Django. Če ste uporabnika že ustvarili, ukaza ni treba zagnati.
$ python3 upravljanje.py ustvarja uporabnikaZa namestitev Django REST Framework zaženite naslednji ukaz.
$ pip3 namesti djangorestframeworkDodajte datoteko rest_framework in ime aplikacije v INSTALLED_APP del nastavitve.py mapa.
INSTALLED_APPS = [.. .
'rest_framework',
'serialapp'
]
Ustvarite model za tabelo baze podatkov:
Odprite modelov.py datoteko iz serialapp mapo in dodajte naslednji skript, da določite strukturo stranke mize. Stranka razred je definiran za ustvarjanje tabele z imenom stranke s ime, naslov, e-pošta, št, in ustvarjen polja. Tukaj, ime, e-pošta, in št. stika polja bodo shranila podatke o znakih, naslov polje shrani besedilne podatke in ustvarjena polje bo shranilo podatke DateTime.
modelov.py
# Uvozite modul modeloviz djanga.db modeli uvoza
# Določite razred modela za tabelo strank
razred Stranka (modeli.Model):
ime = modeli.CharField (max_length = 100)
naslov = modeli.TextField ()
email = modeli.CharField (največja_dolžina = 50)
contact_no = modeli.CharField (max_length = 20)
created = modeli.DateTimeField (auto_now_add = True)
Zaženite makemigracije ukaz za ustvarjanje nove selitve na podlagi sprememb, ki so jih naredili modeli.
$ python3 upravljanje.py makemigrations serialappZaženite migrirati ukaz za izvajanje ukazov SQL in ustvarjanje vseh tabel v zbirki podatkov, definirani v modelov.py mapa.
$ python3 upravljanje.py selijoSpremenite vsebino skrbnik.py datoteko z naslednjo vsebino. Tukaj, stranka razred modelov je registriran z uporabo register () za prikaz stranke tabele na nadzorni plošči uprave Django.
skrbnik.py
# Uvozi skrbniški moduliz djanga.prispevaj uvoz admin
# Uvozite model stranke
iz .modeli uvoz stranke
# Registrirajte model stranke
skrbnik.spletnem mestu.registriraj (kupec)
URL-ji.py
iz djanga.pot za uvoz URL-jeviz djanga.prispevaj uvoz admin
urlpatterns = [
# Določite pot za skrbnika
pot ('admin /', admin.spletnem mestu.urls),
]
V tabelo dodajte zapise:
Odprite stran za upravljanje Django in dodajte nekaj zapisov v stranke tabela, prikazana v brskalniku v obliki JSON. Tu so bili vstavljeni trije zapisi.
Spremenite poglede.py:
Odprite pogledi.py datoteko iz serialapp in vsebino zamenjajte z naslednjim skriptom. CustomerList razred je definiran za serializacijo vseh evidenc strank in vrnitev podatkov v brskalnik v obliki JSON. Podrobnosti o strankah razred je določen za serializacijo določenega zapisa stranke na podlagi vrednosti ID in vrnitev podatkov brskalnika v obliki JSON. CustomerSerializer je datoteka serializatorjev, ki je bila ustvarjena v naslednjem delu te vadnice.
pogledi.py
# Uvozite generične izdelke iz ogrodja Django RESTiz rest_framework uvoznih generikov
# Uvozi model stranke
iz .modeli uvoz stranke
# Uvozi CustomerSerializer iz serializatorjev
iz .serializatorji uvozijo CustomerSerializer
# Določite razred za pretvorbo vseh zapisov tabele strank v JSON
class CustomerList (generiki.ListCreateAPIView):
queryset = kupec.predmetov.vse ()
serializer_class = CustomerSerializer
# Določite razred za pretvorbo določenega zapisa tabele strank v JSON
razred CustomerDetail (generiki.RetrieveUpdateDestroyAPIView):
queryset = kupec.predmetov.vse ()
serializer_class = CustomerSerializer
Ustvari serializator:
Ustvari serializatorji.py datoteka na istem mestu datoteke pogledi.py datoteko z naslednjim skriptom. ModelSerializer razred se tukaj uporablja za ustvarjanje CustomerSerializer razred, ki vrne razred serializatorjev s polji modela kupca. Polja modela stranke, ki bodo pretvorjena v format JSON, so navedena v Meta razred.
serializatorji.py
# Uvozi modul serializatorjev iz ogrodja Django RESTiz rest_framework uvoznih serializatorjev
# Uvozi model stranke
iz .modeli uvoz stranke
# Določite razred serializatorjev po meri za pretvorbo polj modela stranke v JSON
razred CustomerSerializer (serializatorji.ModelSerializer):
razred Meta:
model = kupec
polja = ('id', 'name', 'address', 'email', 'contact_no')
Spremenite URL-je.datoteka py:
Spremenite vsebino URL-ji.py datoteko z naslednjim skriptom. V skriptu jekupci /'pot je definirana za prikaz vseh zapisov datoteke stranke tabelo v obliki JSON in 'kupci /
URL-ji.py
# Uvozi skrbniški moduliz djanga.prispevaj uvoz admin
# Uvozi pot in vključi modul
iz djanga.pot za uvoz URL-jev
# Uvozite poglede
iz pogledov uvoza serialapp
# Uvozi format_suffix_patterns iz ogrodja Django REST
iz rest_framework.urlpatterns uvoz format_suffix_patterns
urlpatterns = [
# Določite pot za skrbnika
pot ('admin /', admin.spletnem mestu.urls),
# Določite pot do vseh podatkov o strankah v obliki JSON
pot ('kupci /', pogledi.CustomerList.as_view ()),
# Določite pot do posebnih podatkov o strankah na podlagi ID-ja v obliki JSON
path ('kupci //', ogledi.Podrobnosti o strankah.as_view ()),
]
urlpatterns = format_suffix_patterns (urlpatterns)
Vsi zapisi tabele strank bodo prikazani v obliki JSON, če se izvede naslednji URL.
http: // localhost: 8000 / kupci
Zapis druge stranke bo prikazan v obliki JSON, če se izvede naslednji URL.
http: // localhost: 8000 / customers / 2
Zaključek:
Uporaba serializatorjev v aplikaciji Django za pretvorbo primerka modela v format JSON je prikazana v tej vadnici z uporabo preprostega skripta. Uporabniki Djanga bodo po branju te vadnice razumeli namen uporabe serializatorjev in jih po potrebi uporabili v svoji aplikaciji.