Django

Cómo usar serializadores Django

Cómo usar serializadores Django
El serializador se usa en Django para convertir las instancias del modelo o los conjuntos de consultas en tipos de datos compatibles con Python que se pueden representar fácilmente en JSON, XML u otros formatos. La deserialización también se puede realizar mediante serializadores para recuperar los datos originales de los datos serializados. Esta función está disponible en Django REST Framework. Entonces, los usuarios deben 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 comprende estos tipos de contenido y solo puede comprender los datos sin procesar, es decir, los datos JSON. En este tutorial se muestra cómo se pueden usar los serializadores para convertir la instancia del modelo en formato JSON.

Requisitos previos:

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

  1. Instale Django versión 3+ en Ubuntu 20+ (preferiblemente)
  2. Crea un proyecto de Django
  3. Ejecute el servidor Django para comprobar si el servidor funciona correctamente o no.

Configura una aplicación Django para serializadores:

Ejecute el siguiente comando para crear una aplicación Django llamada serialapp.

$ python3 administrar.py startapp serialapp

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

$ python3 administrar.py crea superusuario

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 INSTALLED_APP parte de ajustes.py expediente.

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

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

Abre el modelos.py archivo de la serialapp 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 caracteres, 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
# Definir la clase de modelo para la tabla de clientes
clase Cliente (modelos.Modelo):
nombre = modelos.CharField (longitud_máxima = 100)
dirección = modelos.Campo de texto()
email = modelos.CharField (longitud_máxima = 50)
contact_no = modelos.CharField (longitud_máxima = 20)
creado = modelos.DateTimeField (auto_now_add = True)

Ejecutar el hacer migraciones comando para crear una nueva migración basada en los cambios realizados por los modelos.

$ python3 administrar.py makemigrations serialapp

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

$ python3 administrar.py migrar

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 panel de administración de Django.

administración.py

# Importar módulo de administración
de django.administrador de importación de contribuciones
# Importar el modelo de cliente
de .importación de modelos Cliente
# Registrar el modelo de cliente
administración.sitio.registrarse (cliente)

urls.py

de django.ruta de importación de URL
de django.administrador de importación de contribuciones
urlpatterns = [
# Definir la ruta para el administrador
ruta ('admin /', admin.sitio.urls),
]

Agregue registros a la tabla:

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

Modificar las vistas.py:

Abre el puntos de vista.py archivo de la serialapp y reemplace el contenido con la siguiente secuencia de comandos. Lista de clientes la clase está definida para serializar todos los registros de los clientes y devolver los datos al navegador en formato JSON. Detalle del cliente la clase se define para serializar el registro de cliente en particular en función del valor de ID y devolver los datos del navegador en formato JSON. CustomerSerializer es un archivo de serializadores que se ha creado en la siguiente parte de este tutorial.

puntos de vista.py

# Importar genéricos desde Django REST Framework
de rest_framework importar genéricos
# Modelo de cliente de importación
de .importación de modelos Cliente
# Importar CustomerSerializer desde serializadores
de .Importación de serializadores CustomerSerializer
# Definir clase para convertir todos los registros de la tabla de clientes en JSON
class CustomerList (genéricos.ListCreateAPIView):
queryset = Cliente.objetos.todas()
serializer_class = CustomerSerializer
# Definir clase para convertir el registro particular de la tabla de clientes en JSON
clase CustomerDetail (genéricos.RetrieveUpdateDestroyAPIView):
queryset = Cliente.objetos.todas()
serializer_class = CustomerSerializer

Crear serializador:

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

serializadores.py

# Importar módulo de serializadores desde Django REST Framework
desde serializadores de importación rest_framework
# Modelo de cliente de importación
de .importación de modelos Cliente
# Defina la clase de serializadores personalizados para convertir los campos del modelo del cliente en JSON
clase CustomerSerializer (serializadores.ModelSerializer):
clase Meta:
modelo = Cliente
campos = ('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/'ruta se define para mostrar todos los registros de la clientes tabla en formato JSON y el 'clientes//'ruta se define para mostrar los datos particulares de la clientes tabla en formato JSON basada en el valor de ID.

urls.py

# Importar módulo de administración
de django.administrador de importación de contribuciones
# Importar ruta e incluir módulo
de django.ruta de importación de URL
# Importar las vistas
desde vistas de importación de serialapp
# Importar format_suffix_patterns desde Django REST Framework
de rest_framework.urlpatterns importar format_suffix_patterns
urlpatterns = [
# Definir la ruta para el administrador
ruta ('admin /', admin.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 del cliente en particular según el ID en formato JSON
ruta ('clientes //', vistas.Detalle del cliente.as_view ()),
]
urlpatterns = format_suffix_patterns (urlpatterns)

Todos los registros de la tabla de clientes se mostrarán en formato JSON si se ejecuta 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 muestra en este tutorial usando 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.

Cómo usar AutoKey para automatizar juegos de Linux
AutoKey es una utilidad de automatización de escritorio para Linux y X11, programada en Python 3, GTK y Qt. Usando su funcionalidad de scripting y MAC...
Cómo mostrar el contador de FPS en juegos de Linux
Los juegos de Linux obtuvieron un gran impulso cuando Valve anunció el soporte de Linux para el cliente Steam y sus juegos en 2012. Desde entonces, mu...
Cómo descargar y jugar Sid Meier's Civilization VI en Linux
Introducción al juego Civilization 6 es una versión moderna del concepto clásico introducido en la serie de juegos Age of Empires. La idea era bastant...