Django

Ako používať serializátory Django

Ako používať serializátory Django
Serializer sa v Django používa na prevod inštancií modelu alebo množín dotazov na dátové typy podporované v pythone, ktoré je možné ľahko vykresliť do formátov JSON, XML alebo iných formátov. Deserializáciu môžu vykonať aj serializátory, aby získali späť pôvodné údaje zo serializovaných údajov. Táto funkcia je k dispozícii v Django REST Framework. Používatelia si teda musia nainštalovať tento framework, aby mohli používať serializátory. Akákoľvek webová stránka tohto webu môže obsahovať HTML, CSS a údaje z databázových tabuliek. Ale API týmto typom obsahu nerozumie a dokáže porozumieť iba nespracovaným údajom, teda dátam JSON. Ako sa dajú použiť serializátory na prevod inštancie modelu do formátu JSON, sa ukázalo v tomto tutoriále.

Predpoklady:

Pred precvičením scenára tohto tutoriálu musíte splniť nasledujúce úlohy.

  1. Nainštalujte si Django verzie 3+ na Ubuntu 20+ (najlepšie)
  2. Vytvorte projekt Django
  3. Spustením servera Django skontrolujte, či server funguje správne alebo nie.

Inštalácia aplikácie Django pre serializátory:

Spustením nasledujúceho príkazu vytvorte aplikáciu Django s názvom serialapp.

$ python3 spravovať.py startapp serialapp

Spustením nasledujúceho príkazu vytvorte používateľa pre prístup k databáze Django. Ak ste používateľa vytvorili už predtým, nemusíte tento príkaz spúšťať.

$ python3 spravovať.py vytvorí superužívateľa

Spustením nasledujúceho príkazu nainštalujte Django REST Framework.

$ pip3 nainštalovať djangorestframework

Pridajte rest_framework a názov aplikácie do súboru INSTALLED_APP časť nastavenie.py spis.

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

Vytvorte model pre databázovú tabuľku:

Otvor modely.py súbor z serialapp priečinok a pridajte nasledujúci skript, ktorý definuje štruktúru priečinka zákazníkov stoly. Zákazník triedy je definované na vytvorenie tabuľky s názvom zákazníkov s meno, adresa, e-mail, kontaktné č, a vytvorené polia. Tu, meno, email, a kontakt_č polia budú ukladať údaje znakov, adresa pole uloží textové údaje a vytvorené pole uloží dáta DateTime.

modely.py

# Importujte modul modely
od djanga.db import modely
# Definujte triedu modelu pre tabuľku zákazníkov
trieda Zákazník (modely.Model):
meno = modely.CharField (max_length = 100)
adresa = modely.Textové pole()
email = modely.CharField (max_length = 50)
contact_no = modely.CharField (max_length = 20)
vytvorené = modely.DateTimeField (auto_now_add = True)

Spustiť makemigrácie príkaz na vytvorenie novej migrácie na základe zmien vykonaných modelmi.

$ python3 spravovať.py makemigrations serialapp

Spustiť migrovať príkaz na vykonanie príkazov SQL a vytvorenie všetkých tabuliek v databáze definovanej v modely.py spis.

$ python3 spravovať.py migrovať

Upraviť obsah admin.py súbor s nasledujúcim obsahom. Tu, zákazník trieda modelov sa registruje pomocou register () metóda zobrazenia zákazníkov tabuľky na administračnom paneli Django.

admin.py

# Importovať modul správcu
od djanga.sk prispieť import
# Importujte model zákazníka
od .modely importujú zákazníka
# Zaregistrujte model zákazníka
admin.stránky.zaregistrovať sa (zákazník)

adresy URL.py

od djanga.cesta importu adries URL
od djanga.sk prispieť import
urlpatterns = [
# Definujte cestu pre administrátora
cesta ('admin /', admin.stránky.adresy URL),
]

Pridajte záznamy do tabuľky:

Otvorte stránku Správa Django a pridajte nejaké záznamy do priečinka zákazníkov tabuľka zobrazená prehliadaču vo formáte JSON. Tu boli vložené tri záznamy.

Upravte zobrazenia.py:

Otvor názory.py súbor z serialapp a nahraďte obsah nasledujúcim skriptom. Zoznam zákazníkov trieda je definovaná na serializáciu všetkých záznamov zákazníkov a vrátenie údajov do prehľadávača vo formáte JSON. CustomerDetail trieda je definovaná tak, aby serializovala konkrétny záznam zákazníka na základe hodnoty ID a vrátila údaje prehliadača vo formáte JSON. CustomerSerializer je súbor serializátorov, ktorý bol vytvorený v ďalšej časti tohto tutoriálu.

názory.py

# Importujte generiká z Django REST Framework
z generických rest_framework importov
# Import zákazníckeho modelu
od .modely importujú zákazníka
# Importovať CustomerSerializer z serializátorov
od .serializátory importujú CustomerSerializer
# Definujte triedu na prevod všetkých záznamov tabuľky zákazníkov do formátu JSON
trieda CustomerList (generiká.ListCreateAPIView):
queryset = Zákazník.predmety.všetko ()
serializer_class = CustomerSerializer
# Definujte triedu na prevod konkrétneho záznamu tabuľky zákazníkov do formátu JSON
trieda CustomerDetail (generiká.RetrieveUpdateDestroyAPIView):
queryset = Zákazník.predmety.všetko ()
serializer_class = CustomerSerializer

Vytvoriť serializátor:

Vytvoriť serializátory.py súbor na rovnakom mieste ako názory.py súbor s nasledujúcim skriptom. ModelSerializer trieda sa tu používa na vytvorenie CustomerSerializer trieda, ktorá vracia triedu serializátorov s poľami modelu zákazníka. Polia modelu zákazníka, ktoré sa prevedú do formátu JSON, sú uvedené v Meta trieda.

serializátory.py

# Import modulu serializátorov z Django REST Framework
z rest_framework importujte serializátory
# Import zákazníckeho modelu
od .modely importujú zákazníka
# Definujte triedu vlastných serializátorov na prevod polí modelu zákazníka na JSON
trieda CustomerSerializer (serializátory.ModelSerializer):
trieda Meta:
model = zákazník
fields = ('id', 'name', 'address', 'email', 'contact_no')

Upravte adresy URL.súbor py:

Upraviť obsah adresy URL.py súbor s nasledujúcim skriptom. V scenári sazákazníci /"cesta je definovaná na zobrazenie všetkých záznamov zákazníkov tabuľka vo formáte JSON a znak „zákazníci //"cesta je definovaná na zobrazenie konkrétnych údajov zákazníkov tabuľka vo formáte JSON na základe hodnoty ID.

adresy URL.py

# Importovať modul správcu
od djanga.sk prispieť import
# Importovať cestu a zahrnúť modul
od djanga.cesta importu adries URL
# Importujte zobrazenia
zo zobrazení importu serialapp
# Import format_suffix_patterns z Django REST Framework
z rest_framework.urlpatterns import format_suffix_patterns
urlpatterns = [
# Definujte cestu pre administrátora
cesta ('admin /', admin.stránky.adresy URL),
# Definujte cestu na získanie všetkých údajov o zákazníkoch vo formáte JSON
cesta („zákazníci /“, zobrazenia.Zoznam zákazníkov.as_view ()),
# Definujte cestu na získanie konkrétnych údajov o zákazníkoch na základe ID vo formáte JSON
cesta ('customers //', views.CustomerDetail.as_view ()),
]
urlpatterns = format_suffix_patterns (urlpatterns)

Ak sa vykoná nasledujúca adresa URL, všetky záznamy tabuľky zákazníkov sa zobrazia vo formáte JSON.

http: // localhost: 8000 / zákazníci

Ak sa vykoná nasledujúca adresa URL, záznam druhého zákazníka sa zobrazí vo formáte JSON.

http: // localhost: 8000 / customers / 2

Záver:

Použitie serializátorov v aplikácii Django na prevedenie inštancie modelu do formátu JSON sa v tomto výučbe ukázalo pomocou jednoduchého skriptu. Používatelia Django pochopia účel použitia serializátorov a v prípade potreby ich použijú vo svojej aplikácii po prečítaní tohto tutoriálu.

Stredné tlačidlo myši nefunguje v systéme Windows 10
The stredné tlačidlo myši pomáha vám prechádzať dlhé webové stránky a obrazovky s množstvom údajov. Ak sa to zastaví, budete nakoniec používať klávesn...
Ako zmeniť ľavé a pravé tlačidlo myši na počítači so systémom Windows 10
Je úplnou normou, že všetky zariadenia počítačových myší sú ergonomicky navrhnuté pre pravákov. Existujú však dostupné myšacie zariadenia, ktoré sú šp...
Napodobňovanie kliknutí myšou vznášaním sa pomocou myši bez myši vo Windows 10
Používanie myši alebo klávesnice v nesprávnom postoji k nadmernému používaniu môže mať za následok veľa zdravotných problémov vrátane napätia, syndróm...