Cómo usar serializadores de Django

Cómo usar serializadores de Django
Serializer se usa en Django para convertir las instancias del modelo o QuerySets en tipos de datos compatibles con Python que se pueden representar fácilmente en JSON, XML u otros formatos. Los serializadores también pueden realizar la deserialización para recuperar los datos originales de los datos serializados. Esta característica está disponible en Django Rest Framework. Por lo tanto, los usuarios tienen que instalar este marco para usar los serializadores. Cualquier página web del sitio web puede contener HTML, CSS y datos de las tablas de la base de datos. Pero la API no entiende este tipo de contenido, y solo puede entender los datos sin procesar, es decir, datos JSON. La forma en que los serializadores se pueden usar para convertir la instancia del modelo en formato JSON se ha mostrado en este tutorial.

Prerrequisitos:

Antes de practicar el guión de este tutorial, debe completar las siguientes tareas.

  1. Instale la versión 3+ de Django en Ubuntu 20+ (preferiblemente)
  2. Crear un proyecto Django
  3. Ejecute el servidor Django para verificar que el servidor funcione correctamente o no.

Configurar una aplicación Django para serializadores:

Ejecute el siguiente comando para crear una aplicación Django con nombre en serie.

$ python3 gestionar.py startapp serialapp

Ejecute el siguiente comando para crear el usuario para acceder a la base de datos Django. Si ha creado el usuario antes, entonces no necesita ejecutar el comando.

$ python3 gestionar.py createuperuser

Ejecute el siguiente comando para instalar Django REST Framework.

$ PIP3 Instalar DjangorestFramework

Agregue el REST_FRamework y el nombre de la aplicación en el Instalado_app parte de ajustes.py archivo.

Instalado_apps = [
… .
'REST_FRamework',
'Serialapp'
]

Cree un modelo para la tabla de la base de datos:

Abre el modelos.py archivo del en serie carpeta y agregue el siguiente script para definir la estructura de clientes mesas. Cliente La clase se define para crear una tabla llamada clientes con Nombre, dirección, correo electrónico, contact_no, y creado campos. Aquí, nombre Correo Electronico, y Contact_no Los campos almacenarán datos de personajes, la dirección el campo almacenará los datos de texto y creado el campo almacenará los datos de fecha y hora.

modelos.py

# Importar el módulo de modelos
de Django.Modelos de importación de DB
# Defina la clase de modelo para la tabla de clientes
Cliente de clase (modelos.Modelo):
nombre = modelos.Charfield (max_length = 100)
dirección = modelos.Campo de texto()
correo electrónico = modelos.Charfield (max_length = 50)
Contact_no = modelos.Charfield (max_length = 20)
creado = modelos.DateTimeField (auto_now_add = true)

Ejecutar el makemigraciones Comando para crear una nueva migración basada en los cambios realizados por los modelos.

$ python3 gestionar.py makemigrations serialapp

Ejecutar el emigrar comando para ejecutar los comandos SQL y crear todas las tablas en la base de datos definida en la modelos.py archivo.

$ python3 gestionar.PY migra

Modificar el contenido del administración.py Archivo con el siguiente contenido. Aquí, el cliente La clase de los modelos se registra utilizando el registro() método para mostrar el clientes Tablas en el tablero de la administración de Django.

administración.py

# Importar el módulo de administración
de Django.administrador de importación de contribución
# Importar el modelo de cliente
de .Los modelos importan al cliente
# Registre el modelo de cliente
administración.sitio.Registrarse (Cliente)

URLS.py

de Django.ruta de importación de URLS
de Django.administrador de importación de contribución
urlpatterns = [
# Defina la ruta para el administrador
ruta ('admin/', administrador.sitio.URLS),
]

Agregar registros a la tabla:

Abra la página de administración de Django y agregue algunos registros al clientes tabla que se muestra en el navegador en formato JSON. Aquí, se han insertado tres registros.

Modificar las vistas.PY:

Abre el puntos de vista.py archivo del en serie y reemplace el contenido con el siguiente script. Lista de clientes La clase se define para serializar todos los registros de los clientes y devolver los datos al navegador en formato JSON. Claydetail La clase se define para serializar el registro del cliente particular en función del valor de identificación y devolver los datos del navegador en formato JSON. Clienteserializador es un archivo de serializadores que se ha creado en la siguiente parte de este tutorial.

puntos de vista.py

# Importar genéricos del marco de descanso de Django
Desde REST_Framework Import Genenerics
# Importar modelo de cliente
de .Los modelos importan al cliente
# Importar clienteserializador de serializadores
de .serializadores importar clienteserializadores
# Definir clase para convertir todos los registros de la tabla de clientes en JSON
Lista de clientes de clase (genéricos.ListCreateApiview)::
Queryset = cliente.objetos.todo()
Serializer_class = CLISTERSERIATER
# Definir clase para convertir el registro particular de la tabla de clientes en JSON
clase CustomerDetail (Generics.RemieveUpdatedRoyApiview):
Queryset = cliente.objetos.todo()
Serializer_class = CLISTERSERIATER

Crear serializador:

Crear serializadores.py Archivo en la misma ubicación del puntos de vista.py Archivo con el siguiente script. Modeloserializador La clase se usa aquí para crear Clienteserializador clase que devuelve la clase de serializadores con los campos del modelo de cliente. Los campos modelo de cliente que se convertirán en formato JSON se mencionan en el Meta clase.

serializadores.py

# Importar el módulo de serializadores del marco de descanso de Django
De REST_FRamework Import Serializadores
# Importar modelo de cliente
de .Los modelos importan al cliente
# Defina la clase de serializadores personalizados para convertir los campos del modelo de cliente en JSON
CLASE CLISTERIALIZER (Serializadores.Modelserializer):
Meta de clase:
modelo = cliente
Fields = ('id', 'nombre', 'dirección', 'correo electrónico', 'contact_no')

Modificar las URL.Archivo PY:

Modificar el contenido del URLS.py Archivo con el siguiente script. En el guión, el 'clientes/'La ruta se define para mostrar todos los registros del clientes mesa en formato JSON, y el 'clientes//'La ruta se define para mostrar los datos particulares del clientes Tabla en formato JSON basado en el valor de identificación.

URLS.py

# Importar el módulo de administración
de Django.administrador de importación de contribución
# Importar ruta e incluir módulo
de Django.ruta de importación de URLS
# Importar las vistas
Desde las vistas de importación de SerialApp
# Importación de importación_suffix_patterns de Django REST Framework
de REST_FRamework.UrlPatterns Import Format_suffix_patterns
urlpatterns = [
# Defina la ruta para el administrador
ruta ('admin/', administrador.sitio.URLS),
# Defina la ruta para obtener todos los datos de los clientes en formato JSON
ruta ('clientes/', vistas.Lista de clientes.as_view ()),
# Defina la ruta para obtener los datos particulares del cliente basados ​​en ID en formato JSON
ruta ('clientes //', vistas.Claydetail.as_view ()),
]
urlpatterns = format_suffix_patterns (urlpatterns)

Todos los registros de la tabla de clientes se mostrarán en formato JSON si se ejecutará la siguiente URL.

http: // localhost: 8000/clientes

El registro del segundo cliente se mostrará en formato JSON si se ejecuta la siguiente URL.

http: // localhost: 8000/clientes/2

Conclusión:

El uso de serializadores en la aplicación Django para convertir la instancia del modelo en formato JSON se ha mostrado en este tutorial utilizando un script simple. Los usuarios de Django comprenderán el propósito de usar serializadores y los aplicarán en su aplicación si es necesario después de leer este tutorial.