Django

Jak používat serializátory Django

Jak používat serializátory Django
Serializer se používá v Django k převodu instancí modelu nebo sady dotazů na python podporované datové typy, které lze snadno vykreslit do formátu JSON, XML nebo jiných formátů. Deserializaci lze provést také pomocí serializátorů, aby se získala zpět původní data ze serializovaných dat. Tato funkce je k dispozici v Django REST Framework. Uživatelé tedy musí nainstalovat tento framework, aby mohli používat serializátory. Jakákoli webová stránka může obsahovat HTML, CSS a data z databázových tabulek. Ale API nerozumí těmto typům obsahu a může porozumět pouze nezpracovaným datům, tj. Datům JSON. Jak lze v tomto kurzu použít serializátory k převodu instance modelu do formátu JSON.

Předpoklady:

Před procvičením skriptu tohoto tutoriálu musíte dokončit následující úkoly.

  1. Nainstalujte Django verze 3+ na Ubuntu 20+ (nejlépe)
  2. Vytvořte projekt Django
  3. Spusťte server Django a zkontrolujte, zda server funguje správně nebo ne.

Nastavení aplikace Django pro Serializátory:

Spuštěním následujícího příkazu vytvořte aplikaci Django s názvem serialapp.

$ python3 spravovat.py startapp serialapp

Spuštěním následujícího příkazu vytvořte uživatele pro přístup k databázi Django. Pokud jste uživatele již dříve vytvořili, nemusíte tento příkaz spouštět.

$ python3 spravovat.py vytvoří superuživatele

Spuštěním následujícího příkazu nainstalujte Django REST Framework.

$ pip3 nainstalujte djangorestframework

Přidejte rest_framework a název aplikace do souboru INSTALLED_APP část nastavení.py soubor.

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

Vytvořte model pro databázovou tabulku:

Otevři modely.py soubor z serialapp složku a přidejte následující skript k definování struktury zákazníky tabulky. Zákazník třída je definována pro vytvoření tabulky s názvem zákazníky s jméno, adresa, e-mail, kontaktní_č, a vytvořeno pole. Tady, jméno, e-mail, a Kontaktní číslo pole budou ukládat data znaků, adresa pole uloží textová data a vytvořeno pole uloží data DateTime.

modely.py

# Importujte modul modely
od djanga.db modely importu
# Definujte třídu modelu pro tabulku zákazníků
třída Zákazník (modely.Modelka):
name = modely.CharField (max_length = 100)
adresa = modely.Textové pole()
email = modely.CharField (max_length = 50)
contact_no = modely.CharField (max_length = 20)
created = models.DateTimeField (auto_now_add = True)

Spusťte makemigrace příkaz k vytvoření nové migrace na základě změn provedených modely.

$ python3 spravovat.py makemigrations serialapp

Spusťte migrovat příkaz k provedení příkazů SQL a vytvoření všech tabulek v databázi definované v souboru modely.py soubor.

$ python3 spravovat.py migrovat

Upravit obsah souboru admin.py soubor s následujícím obsahem. Tady, zákazník třída modelů je registrována pomocí registrace() způsob zobrazení zákazníky tabulky na řídicím panelu správy Django.

admin.py

# Importovat modul správce
od djanga.contrib import admin
# Importujte model zákazníka
z .modely importují zákazníka
# Zaregistrujte model zákazníka
admin.stránky.registrace (zákazník)

adresy URL.py

od djanga.cesta pro import adres URL
od djanga.contrib import admin
urlpatterns = [
# Definujte cestu pro administrátora
cesta ('admin /', admin.stránky.adresy URL),
]

Přidejte záznamy do tabulky:

Otevřete stránku Správa Django a přidejte některé záznamy do zákazníky tabulka zobrazená v prohlížeči ve formátu JSON. Zde byly vloženy tři záznamy.

Upravte pohledy.py:

Otevři pohledy.py soubor z serialapp a nahraďte obsah následujícím skriptem. Seznam zákazníků třída je definována k serializaci všech záznamů zákazníků a vrácení dat do prohlížeče ve formátu JSON. CustomerDetail třída je definována k serializaci konkrétního záznamu zákazníka na základě hodnoty ID a vrácení dat prohlížeče ve formátu JSON. CustomerSerializer je soubor serializátorů, který byl vytvořen v další části tohoto kurzu.

pohledy.py

# Import generik z Django REST Framework
z rest_framework import generik
# Importujte model zákazníka
z .modely importují zákazníka
# Importujte CustomerSerializer ze serializátorů
z .serializátory importují CustomerSerializer
# Definujte třídu pro převod všech záznamů tabulky zákazníků do formátu JSON
třída CustomerList (generika.ListCreateAPIView):
queryset = Zákazník.předměty.Všechno()
serializer_class = CustomerSerializer
# Definujte třídu pro převod konkrétního záznamu tabulky zákazníků do formátu JSON
třída CustomerDetail (generika.RetrieveUpdateDestroyAPIView):
queryset = Zákazník.předměty.Všechno()
serializer_class = CustomerSerializer

Vytvořit serializátor:

Vytvořit serializátory.py soubor ve stejném umístění souboru pohledy.py soubor s následujícím skriptem. ModelSerializer třída se zde používá k vytvoření CustomerSerializer třída, která vrací třídu serializátorů s poli modelu zákazníka. Pole modelu zákazníka, která budou převedena do formátu JSON, jsou uvedena v Meta třída.

serializátory.py

# Importujte modul serializátorů z Django REST Framework
z rest_framework importovat serializátory
# Importujte model zákazníka
z .modely importují zákazníka
# Definujte třídu vlastních serializátorů pro převod polí modelu zákazníka na JSON
třída CustomerSerializer (serializátory.ModelSerializer):
třída Meta:
model = zákazník
fields = ('id', 'name', 'address', 'email', 'contact_no')

Upravte adresy URL.py soubor:

Upravit obsah souboru adresy URL.py soubor s následujícím skriptem. Ve scénáři sezákazníci /"cesta je definována pro zobrazení všech záznamů zákazníky tabulka ve formátu JSON a 'zákazníci //"cesta je definována pro zobrazení konkrétních dat zákazníky tabulka ve formátu JSON na základě hodnoty ID.

adresy URL.py

# Importovat modul správce
od djanga.contrib import admin
# Importovat cestu a zahrnout modul
od djanga.cesta pro import adres URL
# Importujte pohledy
ze zobrazení importu serialapp
# Import format_suffix_patterns z Django REST Framework
z rest_framework.urlpatterns import format_suffix_patterns
urlpatterns = [
# Definujte cestu pro administrátora
cesta ('admin /', admin.stránky.adresy URL),
# Definujte cestu k získání všech dat zákazníků ve formátu JSON
cesta („zákazníci /“, zobrazení.Seznam zákazníků.as_view ()),
# Definujte cestu k získání konkrétních údajů o zákaznících na základě ID ve formátu JSON
path ('customers //', views.CustomerDetail.as_view ()),
]
urlpatterns = format_suffix_patterns (urlpatterns)

Pokud se spustí následující adresa URL, všechny záznamy tabulky zákazníků se zobrazí ve formátu JSON.

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

Záznam druhého zákazníka se zobrazí ve formátu JSON, pokud se provede následující adresa URL.

http: // localhost: 8000 / customers / 2

Závěr:

Použití serializátorů v aplikaci Django k převodu instance modelu do formátu JSON se v tomto kurzu ukázalo pomocí jednoduchého skriptu. Uživatelé Django pochopí účel použití serializátorů a v případě potřeby je použijí ve své aplikaci po přečtení tohoto kurzu.

Hry Nejlepší hry z příkazového řádku pro Linux
Nejlepší hry z příkazového řádku pro Linux
Příkazový řádek není při používání Linuxu jen vaším největším spojencem - může být také zdrojem zábavy, protože jej můžete použít k hraní mnoha zábavn...
Hry Nejlepší aplikace pro mapování gamepadu pro Linux
Nejlepší aplikace pro mapování gamepadu pro Linux
Pokud rádi hrajete hry na Linuxu s gamepadem místo typického vstupního systému pro klávesnici a myš, máte k dispozici několik užitečných aplikací. Mno...
Hry Užitečné nástroje pro hráče Linuxu
Užitečné nástroje pro hráče Linuxu
Pokud rádi hrajete hry na Linuxu, je pravděpodobné, že jste ke zlepšení herního zážitku použili aplikace a nástroje jako Wine, Lutris a OBS Studio. Kr...