Django

Kā lietot Django Serializer

Kā lietot Django Serializer
Serializators tiek izmantots Django, lai modeļa gadījumus vai vaicājumu kopas pārveidotu par Python atbalstītiem datu tipiem, kurus var viegli atveidot JSON, XML vai citos formātos. Dezerializāciju var veikt arī seriālizētāji, lai atgūtu sākotnējos datus no sērijveida datiem. Šī funkcija ir pieejama Django REST Framework. Tātad, lai izmantotu serializētājus, lietotājiem ir jāinstalē šī sistēma. Jebkurā tīmekļa vietnē var būt HTML, CSS un dati no datu bāzes tabulām. Bet API nesaprot šāda veida saturu, un tā var saprast tikai neapstrādātus datus, tas ir, JSON datus. Šajā apmācībā ir parādīts, kā serizatorus var izmantot modeļa instances pārveidošanai JSON formātā.

Priekšnosacījumi:

Pirms praktizēt šīs apmācības skriptu, jums ir jāveic šādi uzdevumi.

  1. Instalējiet Django versiju 3+ Ubuntu 20+ (vēlams)
  2. Izveidojiet Django projektu
  3. Palaidiet Django serveri, lai pārbaudītu, vai serveris darbojas pareizi.

Django lietotnes iestatīšana serializētājiem:

Palaidiet šo komandu, lai izveidotu Django lietotni ar nosaukumu serialapp.

$ python3 pārvaldīt.py startapp serialapp

Palaidiet šo komandu, lai izveidotu lietotāju piekļuvei Django datu bāzei. Ja esat iepriekš izveidojis lietotāju, komanda nav jāpalaiž.

$ python3 pārvaldīt.py rada liellietotāju

Palaidiet šo komandu, lai instalētu Django REST Framework.

$ pip3 instalējiet djangorestframework

Pievienojiet rest_framework un lietotnes nosaukumu INSTALLED_APP daļa no iestatījumi.py failu.

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

Izveidojiet datu bāzes tabulas modeli:

Atveriet modeļiem.py failu no serialapp mapi un pievienojiet šādu skriptu, lai definētu klientiem tabulas. Klients klase ir definēta, lai izveidotu tabulu ar nosaukumu klientiem ar vārds, adrese, e-pasts, kontakta_nr, un izveidots lauki. Šeit, vārds, e-pasts, un kontakta_nr laukos tiks saglabāti rakstzīmju dati, adrese laukā tiks glabāti teksta dati un izveidots laukā tiks saglabāti DateTime dati.

modeļiem.py

# Importējiet modeļu moduli
no django.db importēšanas modeļi
# Definējiet modeļu klasi klientu tabulai
klases klients (modeļi.Modelis):
nosaukums = modeļi.CharField (maks. Garums = 100)
adrese = modeļi.TextField ()
e-pasts = modeļi.CharField (maks. Garums = 50)
contact_no = modeļi.CharField (maks. Garums = 20)
izveidots = modeļi.DateTimeField (auto_now_add = True)

Palaidiet makemigrācijas komandu, lai izveidotu jaunu migrāciju, pamatojoties uz modeļu veiktajām izmaiņām.

$ python3 pārvaldīt.py makemigrations serialapp

Palaidiet migrēt komandu izpildīt SQL komandas un izveidot visas tabulas datu bāzē, kas definēta modeļiem.py failu.

$ python3 pārvaldīt.py migrēt

Mainīt programmas saturu admin.py failu ar šādu saturu. Šeit, klients modeļu klase tiek reģistrēta, izmantojot reģistrs () metode, lai parādītu klientiem tabulas Django administrācijas informācijas panelī.

admin.py

# Importēt administratora moduli
no django.ieguldījuma importēšanas administrators
# Importējiet klienta modeli
no .modeļi importē klientu
# Reģistrējiet klienta modeli
admin.vietne.reģistrēties (klients)

URL.py

no django.URL importēšanas ceļš
no django.ieguldījuma importēšanas administrators
urlpatterns = [
# Definējiet administratora ceļu
ceļš ('admin /', admin.vietne.URL),
]

Pievienojiet ierakstus tabulā:

Atveriet Django administrācijas lapu un pievienojiet dažus ierakstus klientiem tabula tiek parādīta pārlūkprogrammai JSON formātā. Šeit ir ievietoti trīs ieraksti.

Mainīt skatus.py:

Atveriet skati.py failu no serialapp un aizstājiet saturu ar šo skriptu. Klientu saraksts klase ir definēta, lai sērijveidotu visus klientu ierakstus un atgrieztu datus pārlūkprogrammā JSON formātā. CustomerDetail klase ir definēta, lai sērijveidotu konkrēto klienta ierakstu, pamatojoties uz ID vērtību, un atgrieztu pārlūka datus JSON formātā. CustomerSerializer ir serializer fails, kas ir izveidots šīs apmācības nākamajā daļā.

skati.py

# Importējiet vispārīgās zāles no Django REST Framework
no rest_framework importēt vispārīgus
# Importēt klienta modeli
no .modeļi importē klientu
# Importējiet CustomerSerializer no serializētājiem
no .seriālizētāji importē CustomerSerializer
# Definējiet klasi, lai visus klientu tabulas ierakstus pārvērstu JSON
klases Klientu saraksts (vispārīgie.ListCreateAPIView):
queryset = Klients.objektiem.visi ()
serializer_class = CustomerSerializer
# Definējiet klasi, lai konkrēto klientu tabulas ierakstu pārveidotu par JSON
klase CustomerDetail (vispārīgie.RetrieveUpdateDestroyAPIView):
queryset = Klients.objektiem.visi ()
serializer_class = CustomerSerializer

Izveidot Serializer:

Izveidot seriālizatori.py failu tajā pašā vietā, kur skati.py failu ar šādu skriptu. ModelSerializer klase šeit tiek izmantota, lai izveidotu CustomerSerializer klase, kas atgriež serializētāju klasi ar klienta modeļa laukiem. Klienta modeļa lauki, kas tiks pārveidoti JSON formātā, ir minēti Meta klasē.

seriālizatori.py

# Importējiet seriālizatoru moduli no Django REST Framework
no rest_framework importa seriālizētājiem
# Importēt klienta modeli
no .modeļi importē klientu
# Definējiet pielāgoto sērijveida ierīču klasi, lai klienta modeļa laukus pārveidotu par JSON
klases CustomerSerializer (seriālizētāji.ModelSerializer):
klase Meta:
modelis = klients
lauki = ('id', 'name', 'address', 'email', 'contact_no')

Mainīt URL.py fails:

Mainīt programmas saturu URL.py failu ar šādu skriptu. Skriptā “klienti /"ceļš ir noteikts, lai parādītu visus klientiem tabula JSON formātā unklienti //"ceļš ir noteikts, lai parādītu konkrētus klientiem tabula JSON formātā, pamatojoties uz ID vērtību.

URL.py

# Importēt administratora moduli
no django.ieguldījuma importēšanas administrators
# Importēt ceļu un iekļaut moduli
no django.URL importēšanas ceļš
# Importējiet skatus
no serialapp importēšanas skatiem
# Importējiet format_suffix_patterns no Django REST Framework
no rest_framework.urlpatterns importēt format_suffix_patterns
urlpatterns = [
# Definējiet administratora ceļu
ceļš ('admin /', admin.vietne.URL),
# Definējiet ceļu, kā iegūt visus klientu datus JSON formātā
ceļš ('klienti /', skatījumi.Klientu saraksts.as_view ()),
# Definējiet ceļu, lai iegūtu konkrētus klienta datus, pamatojoties uz ID, JSON formātā
ceļš ('klienti //', skati.CustomerDetail.as_view ()),
]
urlpatterns = format_suffix_patterns (urlpatterns)

Visi klientu tabulas ieraksti tiks parādīti JSON formātā, ja tiks izpildīts šāds URL.

http: // localhost: 8000 / klienti

Otrā klienta ieraksts tiks parādīts JSON formātā, ja tiks izpildīts šāds URL.

http: // localhost: 8000 / klienti / 2

Secinājums:

Serializatoru izmantošana Django lietojumprogrammā modeļa instances pārveidošanai JSON formātā ir parādīta šajā apmācībā, izmantojot vienkāršu skriptu. Pēc šīs apmācības izlasīšanas Django lietotāji sapratīs serizatoru izmantošanas mērķi un, ja nepieciešams, tos pielietos savā lietojumprogrammā.

Vulkan Linux lietotājiem
Ar katru jauno grafisko karšu paaudzi mēs redzam, kā spēļu izstrādātāji pārspēj grafiskās uzticamības robežas un tuvojas fotoreālismam. Neskatoties uz...
OpenTTD vs Simutrans
Transporta simulācijas izveide var būt jautra, relaksējoša un ārkārtīgi vilinoša. Tāpēc jums jāpārliecinās, ka izmēģināt pēc iespējas vairāk spēļu, la...
OpenTTD apmācība
OpenTTD ir viena no populārākajām biznesa simulācijas spēlēm. Šajā spēlē jums ir jāizveido brīnišķīgs transporta bizness. Tomēr jūs sāksit sākumā apmē...