Предпосылки:
Перед тем, как практиковать сценарий этого руководства, вам необходимо выполнить следующие задачи.
- Установите Django версии 3+ на Ubuntu 20+ (желательно)
- Создайте проект Django
- Запустите сервер Django, чтобы проверить, работает ли сервер правильно или нет.
Настройте приложение Django для сериализаторов:
Выполните следующую команду, чтобы создать приложение Django с именем serialapp.
$ python3 manage.py startapp serialappВыполните следующую команду, чтобы создать пользователя для доступа к базе данных Django. Если вы уже создавали пользователя раньше, то вам не нужно запускать команду.
$ python3 manage.py создает суперпользователяВыполните следующую команду, чтобы установить Django REST Framework.
$ pip3 установить djangorestframeworkДобавьте rest_framework и название приложения в INSTALLED_APP часть настройки.ру файл.
INSTALLED_APPS = [… .
'rest_framework',
'serialapp'
]
Создайте модель для таблицы базы данных:
Открой модели.ру файл из serialapp папку и добавьте следующий скрипт, чтобы определить структуру клиенты столы. Клиент класс определен для создания таблицы с именем клиенты с участием имя, адрес, электронная почта, contact_no, а также созданный поля. Здесь, имя, электронная почта, а также contact_no поля будут хранить символьные данные, адрес поле будет хранить текстовые данные, а созданный поле будет хранить данные DateTime.
модели.ру
# Импортировать модуль моделейиз джанго.модели импорта БД
# Определить класс модели для таблицы клиентов
класс Customer (модели.Модель):
имя = модели.CharField (max_length = 100)
адрес = модели.Текстовое поле()
электронная почта = модели.CharField (max_length = 50)
contact_no = модели.CharField (max_length = 20)
created = модели.DateTimeField (auto_now_add = True)
Запустить миграция команда для создания новой миграции на основе изменений, внесенных моделями.
$ python3 manage.py makemigrations serialappЗапустить мигрировать команда для выполнения команд SQL и создания всех таблиц в базе данных, определенных в модели.ру файл.
$ python3 manage.Py migrateИзмените содержимое админ.ру файл со следующим содержанием. Здесь, клиент класс моделей регистрируется с помощью регистр () метод отображения клиенты таблицы на панели администрирования Django.
админ.ру
# Импортировать админ-модульиз джанго.contrib import admin
# Импортировать модель клиента
из .модели импорт Заказчик
# Зарегистрируйте модель клиента
админ.сайт.зарегистрироваться (Заказчик)
URL-адреса.ру
из джанго.путь импорта URLиз джанго.contrib import admin
urlpatterns = [
# Определить путь для администратора
путь ('админ /', админ.сайт.URL-адреса),
]
Добавьте записи в таблицу:
Откройте страницу администрирования Django и добавьте несколько записей в клиенты таблица, отображаемая в браузере в формате JSON. Здесь были вставлены три записи.
Измените представления.ру:
Открой взгляды.ру файл из serialapp и замените содержимое следующим скриптом. Список клиентов класс определен для сериализации всех записей клиентов и возврата данных в браузер в формате JSON. CustomerDetail класс определен для сериализации конкретной записи клиента на основе значения идентификатора и возврата данных браузера в формате JSON. CustomerSerializer это файл сериализатора, который был создан в следующей части этого руководства.
взгляды.ру
# Импортировать дженерики из Django REST Frameworkиз rest_framework импортировать дженерики
# Импортировать модель клиента
из .модели импорт Заказчик
# Импортировать CustomerSerializer из сериализаторов
из .сериализаторы импортируют CustomerSerializer
# Определить класс для преобразования всех записей таблицы клиентов в JSON
класс CustomerList (дженерики.ListCreateAPIView):
queryset = Клиент.объекты.все()
serializer_class = CustomerSerializer
# Определить класс для преобразования конкретной записи таблицы клиентов в JSON
класс CustomerDetail (дженерики.RetrieveUpdateDestroyAPIView):
queryset = Клиент.объекты.все()
serializer_class = CustomerSerializer
Создать сериализатор:
Создавать сериализаторы.ру файл в том же месте взгляды.ру файл со следующим скриптом. ModelSerializer класс используется здесь для создания CustomerSerializer класс, который возвращает класс сериализаторов с полями модели Customer. Поля модели клиента, которые будут преобразованы в формат JSON, указаны в Мета класс.
сериализаторы.ру
# Импортировать модуль сериализаторов из Django REST Frameworkиз сериализаторов импорта rest_framework
# Импортировать модель клиента
из .модели импорт Заказчик
# Определить класс пользовательских сериализаторов для преобразования полей модели Customer в JSON
класс CustomerSerializer (сериализаторы.ModelSerializer):
класс Мета:
model = Клиент
fields = ('id', 'name', 'address', 'email', 'contact_no')
Измените URL-адреса.py файл:
Измените содержимое URL-адреса.ру файл со следующим скриптом. В сценарии 'клиенты/'путь определен для отображения всех записей клиенты таблица в формате JSON, а 'клиенты/
URL-адреса.ру
# Импортировать админ-модульиз джанго.contrib import admin
# Импортировать путь и включить модуль
из джанго.путь импорта URL
# Импортировать просмотры
из представлений импорта serialapp
# Импортировать format_suffix_patterns из Django REST Framework
от rest_framework.urlpatterns import format_suffix_patterns
urlpatterns = [
# Определить путь для администратора
путь ('админ /', админ.сайт.URL-адреса),
# Определить путь для получения всех данных о клиентах в формате JSON
путь ('клиенты /', просмотры.Список клиентов.as_view ()),
# Определить путь для получения данных конкретного клиента на основе идентификатора в формате JSON
путь ('клиенты //', просмотры.CustomerDetail.as_view ()),
]
urlpatterns = format_suffix_patterns (urlpatterns)
Все записи таблицы клиентов будут показаны в формате JSON, если следующий URL будет выполняться.
http: // localhost: 8000 / клиенты
Запись второго клиента будет показана в формате JSON, если выполняется следующий URL.
http: // локальный: 8000 / клиенты / 2
Заключение:
Использование сериализаторов в приложении Django для преобразования экземпляра модели в формат JSON показано в этом руководстве с помощью простого скрипта. Пользователи Django поймут цель использования сериализаторов и при необходимости применит их в своем приложении после прочтения этого руководства.