Django

Kako uporabljati Django serializatorje

Kako uporabljati Django serializatorje
Serializer se v Django uporablja za pretvorbo primerkov modela ali naborov poizvedb v podprte vrste podatkov, ki jih podpira python, ki jih je mogoče enostavno upodobiti v JSON, XML ali druge formate. Deserializacijo lahko izvedejo tudi serializatorji, da dobijo nazaj prvotne podatke iz serializiranih podatkov. Ta funkcija je na voljo v okolju Django REST. Torej, uporabniki morajo namestiti ta okvir za uporabo serializatorjev. Vsaka spletna stran lahko vsebuje HTML, CSS in podatke iz tabel zbirke podatkov. Toda API ne razume teh vrst vsebine in lahko razume samo neobdelane podatke, to je podatke JSON. Kako je mogoče s serializatorji pretvoriti primerek modela v format JSON, je prikazano v tej vadnici.

Pogoji:

Pred vadbo skripta te vaje morate opraviti naslednje naloge.

  1. Namestite različico Django 3+ na Ubuntu 20+ (po možnosti)
  2. Ustvarite projekt Django
  3. 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 serialapp

Zaž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 uporabnika

Za namestitev Django REST Framework zaženite naslednji ukaz.

$ pip3 namesti djangorestframework

Dodajte 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 modelov
iz 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 serialapp

Zaženite migrirati ukaz za izvajanje ukazov SQL in ustvarjanje vseh tabel v zbirki podatkov, definirani v modelov.py mapa.

$ python3 upravljanje.py selijo

Spremenite 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 modul
iz 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-jev
iz 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 REST
iz 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 REST
iz 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 //'pot je definirana za prikaz določenih podatkov stranke tabela v obliki JSON glede na vrednost ID.

URL-ji.py

# Uvozi skrbniški modul
iz 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.

Kako prikazati števec FPS v igrah Linux
Linux gaming je dobil velik zagon, ko je Valve leta 2012 napovedal podporo Linuxu za odjemalca Steam in njihove igre. Od takrat se je veliko AAA in in...
Kako prenesti in igrati Sid Meier's Civilization VI v Linuxu
Uvod v igro Civilization 6 je sodoben pogled na klasični koncept, uveden v seriji iger Age of Empires. Ideja je bila dokaj preprosta; začeli bi v zelo...
Kako namestiti in igrati Doom v Linuxu
Uvod v Doom Serija Doom je nastala v devetdesetih letih po izidu prvotnega Dooma. Bil je takojšen hit in od takrat naprej je serija iger prejela števi...