Vereisten:
Voordat u het script van deze tutorial oefent, moet u de volgende taken uitvoeren:.
- Installeer de Django versie 3+ op Ubuntu 20+ (bij voorkeur)
- Een Django-project maken
- Voer de Django-server uit om te controleren of de server goed werkt of niet.
Stel een Django-app in voor serializers:
Voer de volgende opdracht uit om een Django-app met de naam te maken seriële app.
$ python3 beheren.py startapp seriële appVoer de volgende opdracht uit om de gebruiker te maken voor toegang tot de Django-database:. Als je de gebruiker eerder hebt gemaakt, hoef je de opdracht niet uit te voeren.
$ python3 beheren.py createsuperuserVoer de volgende opdracht uit om Django REST Framework te installeren:.
$ pip3 installeer djangorestframeworkVoeg de rest_framework en app-naam toe in de INSTALLED_APP deel van de instellingen.py het dossier.
INSTALLED_APPS = [… .
'rest_framework',
'serieapp'
]
Maak een model voor de databasetabel:
Open de modellen.py bestand van de seriële app map en voeg het volgende script toe om de structuur van te definiëren klanten tafels. Klant class is gedefinieerd om een tabel te maken met de naam klanten met naam, adres, e-mail, contact_no, en gemaakt velden. Hier, naam, e-mail, en contact_no velden zullen karaktergegevens opslaan, het adres veld zal de tekstgegevens opslaan, en gemaakt veld slaat de DateTime-gegevens op.
modellen.py
# Importeer de modellenmodulevan django.db-importmodellen
# Definieer de modelklasse voor de klantentabel
klasse Klant (modellen).Model):
naam = modellen.CharField(max_length=100)
adres = modellen.TekstVeld()
e-mail = modellen.CharField(max_length=50)
contact_no = modellen.CharField(max_length=20)
gemaakt = modellen.DateTimeField(auto_now_add=True)
Voer de ... uit migraties opdracht om een nieuwe migratie te maken op basis van de wijzigingen die door de modellen zijn aangebracht.
$ python3 beheren.py makemigraties serialappVoer de ... uit migreren commando om de SQL-commando's uit te voeren en alle tabellen te maken in de database gedefinieerd in de in modellen.py het dossier.
$ python3 beheren.py migrerenWijzig de inhoud van de beheerder.py bestand met de volgende inhoud:. Hier, de klant klasse van de modellen wordt geregistreerd met behulp van het register() methode om de . weer te geven klanten tabellen in het Django-beheerdashboard.
beheerder.py
# Beheermodule importerenvan django.bijdrage import beheerder
# Importeer het klantmodel
van .modellen importeren Klant:
# Registreer het klantmodel
beheerder.website.registreren (klant)
URL's.py
van django.URL-importpadvan django.bijdrage import beheerder
urlpatronen = [
# Definieer het pad voor admin
pad('admin/', beheerder.website.URL's),
]
Voeg records toe aan de tabel:
Open de Django-beheerpagina en voeg enkele records toe aan de klanten tabel weergegeven in de browser in JSON-indeling. Hier zijn drie records ingevoegd.
Wijzig de weergaven.py:
Open de keer bekeken.py bestand van de seriële app en vervang de inhoud door het volgende script:. Klantenlijst class is gedefinieerd om alle records van de klant te serialiseren en de gegevens terug te sturen naar de browser in JSON-indeling. KlantDetail class is gedefinieerd om het specifieke klantrecord te serialiseren op basis van de ID-waarde en de gegevens van de browser in JSON-indeling te retourneren. KlantSerializer is een serializers-bestand dat is gemaakt in het volgende deel van deze tutorial.
keer bekeken.py
# Importeer generieke geneesmiddelen uit het Django REST Frameworkvan rest_framework importeer generieke geneesmiddelen
# Klantmodel importeren
van .modellen importeren Klant:
# Importeer CustomerSerializer van serializers
van .serializers importeren CustomerSerializer
# Definieer klasse om alle records van de klantentabel om te zetten in JSON
klasse Klantenlijst (generieken).ListCreateAPIView):
queryset = Klant.voorwerpen.alle()
serializer_class = CustomerSerializer
# Definieer klasse om het specifieke record van de klantentabel om te zetten in JSON
klasse KlantDetail (generieken).RetrieveUpdateDestroyAPIView):
queryset = Klant.voorwerpen.alle()
serializer_class = CustomerSerializer
Serializer maken:
Aanmaken serializers.py bestand op dezelfde locatie als de keer bekeken.py bestand met het volgende script. ModelSerializer class wordt hier gebruikt om te creëren KlantSerializer class die de klasse serializers retourneert met de velden van het Customer-model. De klantmodelvelden die naar JSON-indeling worden geconverteerd, worden vermeld in de Meta klasse.
serializers.py
# Importeer serializers-module uit Django REST Frameworkvan rest_framework importeer serializers
# Klantmodel importeren
van .modellen importeren Klant:
# Definieer de custom serializers-klasse om de klantmodelvelden om te zetten in JSON
klasse CustomerSerializer (serializers).ModelSerializer):
klasse Meta:
model = klant
velden = ('id', 'naam', 'adres', 'e-mail', 'contact_nr')
Pas de URL's aan.py-bestand:
Wijzig de inhoud van de URL's.py bestand met het volgende script. In het script staat de 'klanten/' pad is gedefinieerd om alle records van de klanten tabel in JSON-indeling, en de 'klanten/
URL's.py
# Beheermodule importerenvan django.bijdrage import beheerder
# Pad importeren en module opnemen
van django.URL-importpad
# Importeer de weergaven
van seriële app-importweergaven
# Importeer format_suffix_patterns van Django REST Framework
van rest_framework.urlpatterns import format_suffix_patterns
urlpatronen = [
# Definieer het pad voor admin
pad('admin/', beheerder.website.URL's),
# Definieer het pad om alle klantgegevens in JSON-indeling te krijgen
pad('klanten/', weergaven.Klantenlijst.as_view()),
# Definieer het pad om de specifieke klantgegevens te verkrijgen op basis van ID in JSON-indeling
pad('klanten//', weergaven.KlantDetail.as_view()),
]
urlpatterns = format_suffix_patterns(urlpatterns)
Alle records van de klantentabel worden weergegeven in JSON-indeling als de volgende URL wordt uitgevoerd:.
http://localhost:8000/klanten
Het record van de tweede klant wordt weergegeven in JSON-indeling als de volgende URL wordt uitgevoerd:.
http://localhost:8000/customers/2
Conclusie:
Het gebruik van serializers in de Django-toepassing om de modelinstantie naar JSON-indeling te converteren, is in deze zelfstudie aangetoond met behulp van een eenvoudig script. De Django-gebruikers zullen het doel van het gebruik van serializers begrijpen en deze indien nodig in hun toepassing toepassen na het lezen van deze tutorial.