Jak używać serializacji Django

Jak używać serializacji Django
Serializer jest używany w Django do konwersji instancji modelu lub zapytania na typy danych obsługiwanych przez Python, które można łatwo renderować w formaty JSON, XML lub inne. Deserializacja może być również wykonana przez serializatory, aby odzyskać oryginalne dane z serializowanych danych. Ta funkcja jest dostępna w Django Rest Framework. Użytkownicy muszą więc zainstalować tę framework, aby użyć serializatorów. Każda strona internetowa witryny może zawierać HTML, CSS i dane z tabel bazy danych. Ale interfejs API nie rozumie tego rodzaju treści i może zrozumieć tylko surowe dane, to znaczy danych JSON. W tym samouczku pokazano w tym, jak serializatory można użyć do konwersji instancji modelu na format JSON.

Wymagania wstępne:

Przed ćwiczeniem scenariusza tego samouczka musisz wykonać następujące zadania.

  1. Zainstaluj wersję Django 3+ na Ubuntu 20+ (najlepiej)
  2. Utwórz projekt Django
  3. Uruchom serwer Django, aby sprawdzić, czy serwer działa poprawnie lub nie.

Skonfiguruj aplikację Django dla serializatorów:

Uruchom następujące polecenie, aby utworzyć aplikację Django o nazwie SerialApp.

$ Python3 Zarządzaj.PY StartApp SerialApp

Uruchom następujące polecenie, aby utworzyć użytkownika w celu uzyskania dostępu do bazy danych Django. Jeśli wcześniej utworzyłeś użytkownika, nie musisz uruchamiać polecenia.

$ Python3 Zarządzaj.PY CreateSuperuser

Uruchom następujące polecenie, aby zainstalować Django Rest Framework.

$ PIP3 Zainstaluj djangorestframework

Dodaj rest_framework i nazwę aplikacji w Zainstalowany_app część Ustawienia.py plik.

Instalowane_apps = [
… .
„REST_FRAMEWORK”,
„SerialApp”
]

Utwórz model tabeli bazy danych:

Otworzyć modele.py plik z SerialApp folder i dodaj następujący skrypt, aby zdefiniować strukturę klienci tabele. Klient Klasa jest zdefiniowana w celu utworzenia tabeli o nazwie klienci z Nazwa, adres, e -mail, kontakt_no, I Utworzony Pola. Tutaj, Nazwa, e -mail, I contact_no Pola będą przechowywać dane znaków, adres pole będzie przechowywać dane tekstowe i Utworzony pole będzie przechowywać dane DATETIME.

modele.py

# Zaimportuj moduł modeli
z Django.Modele importu DB
# Zdefiniuj klasę modelu dla tabeli klientów
Klasy klient (modele.Model):
name = modele.Charfield (max_length = 100)
adres = modele.Pole tekstowe()
e -mail = modele.Charfield (max_length = 50)
contact_no = modele.Charfield (max_length = 20)
utworzone = modele.DateTimefield (auto_now_add = true)

Uruchom Makemigrations polecenie tworzenia nowej migracji na podstawie zmian wprowadzonych przez modele.

$ Python3 Zarządzaj.Py Makemigrations SerialApp

Uruchom migrować polecenie do wykonania poleceń SQL i utworzenia wszystkich tabel w bazie danych zdefiniowanych w modele.py plik.

$ Python3 Zarządzaj.Py migruj

Zmodyfikuj zawartość Admin.py Plik z następującą zawartością. Tutaj, klient Klasa modeli jest rejestrowana za pomocą za pomocą Rejestr () metoda wyświetlania klienci Tabele w deski rozdzielczej administracyjnej Django.

Admin.py

# Importuj moduł administratora
z Django.Administrator importu
# Zaimportuj model klienta
z .modele importuj klienta
# Zarejestruj model klienta
Admin.strona.Zarejestruj się (klient)

URL.py

z Django.URL ścieżki importu
z Django.Administrator importu
urlpatterns = [
# Zdefiniuj ścieżkę administratora
ścieżka („admin/”, administrator.strona.URL),
]

Dodaj rekordy do tabeli:

Otwórz stronę administracyjną Django i dodaj kilka rekordów do klienci Tabela wyświetlana w przeglądarce w formacie JSON. Tutaj wstawiono trzy rekordy.

Zmodyfikuj widoki.PY:

Otworzyć wyświetlenia.py plik z SerialApp i zastąp treść następującym skryptem. Lista klientów Klasa jest zdefiniowana w celu serializacji wszystkich rekordów klientów i zwrócenia danych do przeglądarki w formacie JSON. CustomerDetail Klasa jest zdefiniowana w celu serializacji konkretnego rekordu klienta na podstawie wartości identyfikacyjnej i zwrócenia danych przeglądarki w formacie JSON. KlientSerializer to plik serializatorów, który został utworzony w następnej części tego samouczka.

wyświetlenia.py

# Importuj generyczne z frameworka REST DJANGO
od res_framework import generycs
# Importuj model klienta
z .modele importuj klienta
# Importuj klientów z serializatorów
z .Serializery importują klientów
# Zdefiniuj klasę, aby przekonwertować wszystkie rekordy tabeli klientów na JSON
Klasy klienta (Generics.ListCreateApiview):
QuerySet = Klient.obiekty.Wszystko()
serializer_class = CustomerSerializer
# Zdefiniuj klasę, aby przekonwertować konkretny rekord tabeli klientów na JSON
Klasa CustomerDetail (Generics.RETRIVERIVEUPDADEDESTROYAPIVIEW):
QuerySet = Klient.obiekty.Wszystko()
serializer_class = CustomerSerializer

Utwórz serializator:

Tworzyć Serializatory.py plik w tej samej lokalizacji wyświetlenia.py Plik z następującym skryptem. Modeererializer Klasa jest tutaj używana do tworzenia KlientSerializer klasa, która zwraca klasę serializatorów z dziedzinami modelu klienta. Pola modelu klienta, które zostaną przekształcone w format JSON, są wymienione w Meta klasa.

Serializatory.py

# Importuj moduł serializatorów z Django REST Framework
z serializacji importu REST_FRAMEWork
# Importuj model klienta
z .modele importuj klienta
# Zdefiniuj klasę niestandardowych serializatorów, aby przekonwertować pól modelu klienta na JSON
Klasy ClientSerializer (serializatory.Modeererializer):
Meta klasy:
model = klient
fields = („id”, „nazwa”, „adres”, „e -mail”, „contact_no”)

Zmodyfikuj adresy URL.plik PY:

Zmodyfikuj zawartość URL.py Plik z następującym skryptem. W scenariuszu ''klienci/„Ścieżka jest zdefiniowana w celu wyświetlania wszystkich rekordów klienci Tabela w formacie JSON i 'klienci//„Ścieżka jest zdefiniowana w celu wyświetlania konkretnych danych klienci Tabela w formacie JSON w oparciu o wartość identyfikacyjną.

URL.py

# Importuj moduł administratora
z Django.Administrator importu
# Importuj ścieżkę i uwzględnij moduł
z Django.URL ścieżki importu
# Zaimportuj widoki
z SerialApp Import Views
# Importuj format_suffix_patterns z Django REST Framework
z REST_FRAMEWORK.urlpatterns import Format_suffix_patterns
urlpatterns = [
# Zdefiniuj ścieżkę administratora
ścieżka („admin/”, administrator.strona.URL),
# Zdefiniuj ścieżkę, aby uzyskać dane wszystkich klientów w formacie JSON
ścieżka („klienci/”, widoki.Lista klientów.as_view ()),
# Zdefiniuj ścieżkę, aby uzyskać konkretne dane klienta na podstawie identyfikatora w formacie JSON
ścieżka („klienci //”, widoki.CustomerDetail.as_view ()),
]
urlpatterns = format_suffix_patterns (urlpatterns)

Wszystkie rekordy tabeli klientów zostaną wyświetlone w formacie JSON, jeśli następujący adres URL zostanie wykonany.

http: // localhost: 8000/klienci

Zapis drugiego klienta zostanie pokazany w formacie JSON, jeśli następujący adres URL zostanie wykonany.

http: // localhost: 8000/klienci/2

Wniosek:

Zastosowanie serializatorów w aplikacji Django do konwersji instancji modelu na format JSON pokazano w tym samouczku za pomocą prostego skryptu. Użytkownicy Django zrozumieją cel korzystania z serializatorów i zastosowania ich w ich aplikacji, jeśli jest to wymagane po przeczytaniu tego samouczka.