Předpoklady:
Před procvičením skriptu tohoto tutoriálu musíte dokončit následující úkoly.
- Nainstalujte Django verze 3+ na Ubuntu 20+ (nejlépe)
- Vytvořte projekt Django
- 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 serialappSpuš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živateleSpuštěním následujícího příkazu nainstalujte Django REST Framework.
$ pip3 nainstalujte djangorestframeworkPř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 modelyod 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 serialappSpusť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 migrovatUpravit 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ávceod 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 URLod 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 Frameworkz 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 Frameworkz 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 /
adresy URL.py
# Importovat modul správceod 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.