Джанго

Як користуватися серіалізаторами 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 створюєкористувача

Виконайте таку команду, щоб встановити Django REST Framework.

$ pip3 встановити djangorestframework

Додайте rest_framework та назву програми в INSTALLED_APP частина налаштування.py файл.

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

Створіть модель для таблиці бази даних:

Відкрийте моделі.py файл із serialapp і додайте наступний скрипт, щоб визначити структуру клієнтів таблиці. Клієнт клас визначений для створення таблиці з іменем клієнтів з ім'я, адреса, електронна адреса, номер_контакту, і створено поля. Ось, ім’я, електронна адреса, і контактний номер поля зберігатимуть символьні дані, адреса поле зберігатиме текстові дані, а створено поле буде зберігати дані DateTime.

моделі.py

# Імпортуйте модуль моделей
від django.моделі імпорту db
# Визначте клас моделі для таблиці клієнтів
клас Замовник (моделі.Модель):
ім'я = моделі.CharField (макс. Довжина = 100)
адреса = моделі.TextField ()
електронна пошта = моделі.CharField (макс. Довжина = 50)
contact_no = моделі.CharField (макс. Довжина = 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 = [
# Визначте шлях для адміністратора
path ('admin /', адміністратор.сайт.URL-адреси),
]

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

Відкрийте сторінку адміністрування Django і додайте кілька записів у клієнтів таблиця, що відображається у браузері у форматі JSON. Тут було вставлено три записи.

Змінити подання.py:

Відкрийте погляди.py файл із serialapp і замінити вміст наступним сценарієм. Список клієнтів клас визначений для серіалізації всіх записів клієнтів і повернення даних до браузера у форматі JSON. Детальніше про клієнта клас визначений для серіалізації конкретного запису клієнта на основі значення ID та повернення даних браузера у форматі JSON. CustomerSerializer - це файл серіалізаторів, створений у наступній частині цього посібника.

погляди.py

# Імпортуйте дженерики з Django REST Framework
з rest_framework імпортувати дженерики
# Імпортувати модель клієнта
від .моделі імпорту замовника
# Імпортувати CustomerSerializer із серіалізаторів
від .серіалізатори імпортують
# Визначте клас для перетворення всіх записів таблиці клієнтів у JSON
клас CustomerList (generics.ListCreateAPIView):
queryset = Клієнт.об'єктів.всі ()
serializer_class = КлієнтСеріалізатор
# Визначте клас для перетворення конкретного запису таблиці клієнтів у JSON
клас CustomerDetail (дженерики.RetrieveUpdateDestroyAPIView):
queryset = Клієнт.об'єктів.всі ()
serializer_class = КлієнтСеріалізатор

Створити серіалізатор:

Створити серіалізатори.py файл у тому самому місці, де знаходиться файл погляди.py файл із таким сценарієм. ModelSerializer тут використовується клас для створення CustomerSerializer клас, який повертає клас серіалізаторів з полями моделі Замовника. Поля моделі замовника, які будуть перетворені у формат JSON, згадані в Мета клас.

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

# Імпортувати модуль серіалізаторів з Django REST Framework
із серіалізаторів імпорту rest_framework
# Імпортувати модель клієнта
від .моделі імпорту замовника
# Визначте власний клас серіалізаторів для перетворення полів моделі клієнта в JSON
клас CustomerSerializer (серіалізатори.ModelSerializer):
клас Мета:
модель = Замовник
поля = ('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 = [
# Визначте шлях для адміністратора
path ('admin /', адміністратор.сайт.URL-адреси),
# Визначте шлях до отримання всіх даних про клієнтів у форматі JSON
шлях ('клієнти /', перегляди.Список клієнтів.as_view ()),
# Визначте шлях до отримання конкретних даних клієнта на основі ідентифікатора у форматі JSON
path ('customers //', views.Детальніше про клієнта.as_view ()),
]
urlpatterns = format_suffix_patterns (urlpatterns)

Усі записи таблиці клієнтів відображатимуться у форматі JSON, якщо буде виконана така URL-адреса.

http: // localhost: 8000 / customers

Запис другого клієнта буде показаний у форматі JSON, якщо буде виконана наступна URL-адреса.

http: // localhost: 8000 / customers / 2

Висновок:

Використання серіалізаторів у програмі Django для перетворення екземпляра моделі у формат JSON показано в цьому посібнику за допомогою простого сценарію. Користувачі Django зрозуміють мету використання серіалізаторів та застосують їх у своєму додатку, прочитавши цей посібник.

5 найкращих аркадних ігор для Linux
В наш час комп’ютери - це серйозні машини, що використовуються для ігор. Якщо ви не можете отримати новий високий бал, ви зрозумієте, що я маю на уваз...
Битва за Веснот 1.13.6 Розробка випущена
Битва за Веснот 1.13.6, випущений минулого місяця, є шостим випуском розробки в 1.13.x, і це забезпечує низку вдосконалень, особливо до інтерфейсу кор...
Як встановити League of Legends на Ubuntu 14.04
Якщо ви шанувальник League of Legends, то це можливість для вас тестувати League of Legends. Зверніть увагу, що LOL підтримується на PlayOnLinux, якщо...