Передумови:
Перш ніж відпрацювати сценарій цього підручника, ви повинні виконати наступні завдання.
- Встановіть Django версії 3+ на Ubuntu 20+ (бажано)
- Створіть проект Django
- Запустіть сервер 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 таклієнти /
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 зрозуміють мету використання серіалізаторів та застосують їх у своєму додатку, прочитавши цей посібник.