Джанго

Как использовать сериализаторы 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 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, а 'клиенты//'путь определен для отображения конкретных данных клиенты таблица в формате JSON на основе значения ID.

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 поймут цель использования сериализаторов и при необходимости применит их в своем приложении после прочтения этого руководства.

5 лучших эргономичных компьютерных мышей для Linux
Вызывает ли длительное использование компьютера боль в запястье или пальцах?? Вы страдаете от скованности суставов и постоянно должны пожимать руки? В...
Как изменить настройки мыши и сенсорной панели с помощью Xinput в Linux
Большинство дистрибутивов Linux по умолчанию поставляются с библиотекой libinput для обработки событий ввода в системе. Он может обрабатывать события ...
Переназначьте кнопки мыши по-разному для разных программ с помощью X-Mouse Button Control
Может быть, вам нужен инструмент, который мог бы изменять управление вашей мышью с каждым приложением, которое вы используете. В этом случае вы можете...