Джанго

Как да използвам сериализаторите на Django

Как да използвам сериализаторите на Django
Сериализаторът се използва в Django за преобразуване на екземплярите на модела или наборите от заявки в поддържани от python типове данни, които могат лесно да бъдат изобразени в JSON, XML или други формати. Десериализацията може да се извърши и от сериализатори, за да се върнат първоначалните данни от сериализираните данни. Тази функция е налична в Django REST Framework. Така че потребителите трябва да инсталират тази рамка, за да използват сериализаторите. Всяка уеб страница на уебсайта може да съдържа HTML, CSS и данни от таблиците на базата данни. Но API не разбира тези типове съдържание и може да разбере само суровите данни, т.е. JSON данни. Как сериализаторите могат да се използват за конвертиране на екземпляра на модела в JSON формат е показано в този урок.

Предпоставки:

Преди да практикувате скрипта на този урок, трябва да изпълните следните задачи.

  1. Инсталирайте Django версия 3+ на Ubuntu 20+ (за предпочитане)
  2. Създайте проект на Django
  3. Стартирайте сървъра Django, за да проверите дали сървърът работи правилно или не.

Настройване на приложение Django за сериализатори:

Изпълнете следната команда, за да създадете приложение на Django с име serialapp.

$ python3 управлява.py startapp serialapp

Изпълнете следната команда, за да създадете потребителя за достъп до базата данни на Django. Ако сте създавали потребителя преди, не е необходимо да изпълнявате командата.

$ python3 управлява.py създаваuperuser

Изпълнете следната команда, за да инсталирате Django REST Framework.

$ pip3 инсталирайте djangorestframework

Добавете rest_framework и името на приложението в INSTALLED_APP част от настройки.py файл.

INSTALLED_APPS = [
.. .
'rest_framework',
„сериалап“
]

Създайте модел за таблицата на базата данни:

Отвори модели.py файл от serialapp папка и добавете следния скрипт, за да определите структурата на клиенти таблици. Клиент клас е дефиниран за създаване на таблица с име клиенти с име, адрес, имейл, contact_no, и създаден полета. Тук, име, имейл, и contact_no полета ще съхраняват данни за символи, адресът полето ще съхранява текстовите данни и създаден полето ще съхранява данните DateTime.

модели.py

# Импортирайте модула за модели
от django.db модели за импортиране
# Определете класа на модела за таблицата на клиентите
клас Клиент (модели.Модел):
име = модели.CharField (max_length = 100)
адрес = модели.Текстово поле()
имейл = модели.CharField (max_length = 50)
contact_no = модели.CharField (max_length = 20)
created = модели.DateTimeField (auto_now_add = True)

Стартирайте макемиграции команда за създаване на нова миграция въз основа на промените, направени от моделите.

$ python3 управлява.py makemigrations serialapp

Стартирайте мигрират команда за изпълнение на SQL команди и създаване на всички таблици в базата данни, дефинирани в модели.py файл.

$ python3 управлява.py мигрират

Променете съдържанието на администратор.py файл със следното съдържание. Тук, клиентът клас на моделите се регистрира чрез използване регистъра () метод за показване на клиенти таблици в таблото за управление на Django.

администратор.py

# Импортиране на администраторски модул
от django.принос вноса администратор
# Импортирайте модела на клиента
от .модели импортиране на клиент
# Регистрирайте модела на клиента
администратор.сайт.регистриране (клиент)

URL адреси.py

от django.път за импортиране на URL адреси
от django.принос вноса администратор
urlpatterns = [
# Определете пътя за администратор
път ('admin /', admin.сайт.URL адреси),
]

Добавете записи в таблицата:

Отворете страницата за администриране на Django и добавете някои записи в клиенти таблица, показана на браузъра в JSON формат. Тук са вмъкнати три записа.

Променете изгледите.py:

Отвори мнения.py файл от serialapp и заменете съдържанието със следния скрипт. CustomerList class е дефиниран за сериализиране на всички записи на клиентите и връщане на данните в браузъра във формат JSON. CustomerDetail class е дефиниран за сериализиране на конкретния клиентски запис въз основа на стойността на ID и връщане на данните на браузъра във формат JSON. CustomerSerializer е файл на сериализатори, който е създаден в следващата част на този урок.

мнения.py

# Импортирайте генерични продукти от рамката Django REST
от rest_framework импортиране на генерични продукти
# Импортиране на модел на клиента
от .модели импортиране на клиент
# Импортирайте CustomerSerializer от сериализатори
от .сериализатори импортират CustomerSerializer
# Определете клас за конвертиране на всички записи от таблицата на клиентите в JSON
клас CustomerList (генерични.ListCreateAPIView):
queryset = Клиент.обекти.всичко()
serializer_class = CustomerSerializer
# Определете клас, за да конвертирате конкретния запис от таблицата на клиентите в JSON
клас CustomerDetail (генерични.RetrieveUpdateDestroyAPIView):
queryset = Клиент.обекти.всичко()
serializer_class = CustomerSerializer

Създаване на сериализатор:

Създайте сериализатори.py файл на същото място на мнения.py файл със следния скрипт. ModelSerializer class се използва тук за създаване CustomerSerializer клас, който връща класа на сериализаторите с полетата на модела на клиента. Полетата на модела на клиента, които ще бъдат преобразувани в JSON формат, са посочени в Мета клас.

сериализатори.py

# Импортирайте модул за сериализатори от Django REST Framework
от rest_framework импортиране на сериализатори
# Импортиране на модел на клиента
от .модели импортиране на клиент
# Дефинирайте класа на персонализираните сериализатори, за да конвертирате полетата на модела на клиента в JSON
клас CustomerSerializer (сериализатори.ModelSerializer):
клас Meta:
модел = клиент
полета = ('id', 'name', 'address', 'email', 'contact_no')

Променете URL адресите.py файл:

Променете съдържанието на URL адреси.py файл със следния скрипт. В сценария,клиенти/'пътят е дефиниран за показване на всички записи на клиенти таблица във формат JSON иклиенти//'пътят е дефиниран за показване на конкретните данни на клиенти таблица във формат JSON въз основа на стойност на ID.

URL адреси.py

# Импортиране на администраторски модул
от django.принос вноса администратор
# Импортиране на път и включване на модул
от django.път за импортиране на URL адреси
# Импортирайте изгледите
от изгледи за импортиране на serialapp
# Импортирайте format_suffix_patterns от Django REST Framework
от rest_framework.urlpatterns импортиране format_suffix_patterns
urlpatterns = [
# Определете пътя за администратор
път ('admin /', admin.сайт.URL адреси),
# Определете пътя за получаване на всички данни за клиенти във формат JSON
път ('клиенти /', изгледи.CustomerList.as_view ()),
# Дефинирайте пътя за получаване на конкретните клиентски данни въз основа на ID във формат JSON
път ('клиенти //', изгледи.CustomerDetail.as_view ()),
]
urlpatterns = format_suffix_patterns (urlpatterns)

Всички записи на таблицата с клиенти ще бъдат показани във формат JSON, ако се изпълни следният URL адрес.

http: // localhost: 8000 / клиенти

Записът на втория клиент ще бъде показан във формат JSON, ако се изпълни следният URL адрес.

http: // localhost: 8000 / customers / 2

Заключение:

Използването на сериализатори в приложението Django за конвертиране на екземпляра на модел в JSON формат е показано в този урок с помощта на прост скрипт. Потребителите на Django ще разберат целта на използването на сериализатори и ще ги приложат в тяхното приложение, ако е необходимо, след като прочетат този урок.

OpenTTD срещу Simutrans
Създаването на собствена транспортна симулация може да бъде забавно, релаксиращо и изключително примамливо. Ето защо трябва да сте сигурни, че изпробв...
Урок за OpenTTD
OpenTTD е една от най-популярните бизнес симулационни игри там. В тази игра трябва да създадете прекрасен транспортен бизнес. Въпреки това, ще започне...
SuperTuxKart за Linux
SuperTuxKart е страхотно заглавие, създадено да ви предостави безплатно изживяването на Mario Kart във вашата Linux система. Играта е доста предизвика...