Cómo usar bulk_create en django?

Cómo usar bulk_create en django?

Django Framework se puede usar para crear una aplicación web con una base de datos escribiendo script en modelos.py y puntos de vista.py Archivos de la aplicación Django. Los datos se pueden insertar en las tablas de la base de datos utilizando el panel de administración de Django o escribiendo un script en el puntos de vista.py archivo. El panel de administración de Django requiere un inicio de sesión para un usuario autenticado para acceder a las tablas de la base de datos. Se pueden insertar registros individuales o múltiples en las tablas de la base de datos escribiendo un script. bulk_create () El método es una de las formas de insertar múltiples registros en la tabla de la base de datos. Cómo bulk_create () El método se utiliza para insertar los datos múltiples en una tabla de base de datos Django se mostrará 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:

Ejecute el siguiente comando para crear una aplicación Django con nombre captura de libros.

$ python3 gestionar.py startapp bookapp

Ejecute el siguiente comando para crear el usuario para acceder a la base de datos Django. Si ya creó uno, entonces no necesita ejecutar el comando.

$ python3 gestionar.py createuperuser

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

Instalado_apps = [

'BookApp'
]

Crea una carpeta llamada plantillas dentro de captura de libros carpeta y establecer la ubicación de la aplicación de la plantilla en el PLANTILLAS parte de ajustes.py archivo.

Plantillas = [

… .
'Dirs': ['/Home/Fahmida/Django_Pro/BookApp/Templates']],
… .
,
]

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

Abre el modelos.py archivo del captura de libros carpeta y agregue el siguiente script para definir la estructura de libros mesas. Libro La clase se define para crear una mesa llamada libros con Título, autor, precio, y publicado_year campos. Según el guión, título y autor los campos se almacenarán Datos de caracteres, y precio y publicado_year Los campos almacenarán los datos enteros. Aquí el título el campo se define con el atributo único. Eso significa que el valor del título el campo no aceptará ningún datos duplicados.

modelos.py

# Módulo de importación de modelos
de Django.Modelos de importación de DB
# Defina la clase de libros para la mesa de los libros
Libro de clases (modelos.Modelo):
Título = modelos.Charfield (max_length = 100, único = verdadero)
Autor = modelos.Charfield (max_length = 100)
precio = modelos.Integerfield ()
publica_year = modelos.Integerfield ()

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

$ python3 gestionar.Py Makemigrations BookApp

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

$ python3 gestionar.PY migra

Modificar el contenido del administración.py Archivo con el siguiente contenido. Aquí, la clase de libros de los modelos está registrada utilizando el registro() método para mostrar el libros 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
# Modelo de libros de importación
de .Libro de importación de modelos
# Registre modelo de libro
administración.sitio.Regístrese (libro)

Crear un archivo de plantilla llamado DisplayBookList.html dentro de bookapp/ plantillas/ carpeta Con el siguiente script. Este script mostrará todos los datos de la tabla de libros en forma tabular. Aparte de eso, para el bucle se usa en el script para iterar los datos pasados ​​desde el puntos de vista.py archivo.

DisplayBookList.html



<br>Tutorial de django bulk_create ()<br>



Lista de libros de Python







% para el libro en Object_List %



% endfor %
IDENTIFICACIÓNNombreAutorAño de publicaciónPrecio
libro.identificación libro.título libro.autorlibro.publica_year$ libro.precio



Modificar el contenido del puntos de vista.py Archivo con el siguiente script. El modelo y los nombres de plantilla se definen en el Bulkinsert clase. get_queryset () El método de la clase se define en el script para devolver todos los registros de la tabla de libros. Por otro lado, Libro.objetos.todo() El método se utiliza para devolver todos los registros de la tabla de libros. existe () El método se utiliza en el script para verificar el libros la mesa está vacía o no. Si este método regresa FALSO entonces se insertarán cinco registros en la tabla de libros utilizando el bulk_create () método.

puntos de vista.py

de Django.Rénero de importación de atajos
# Módulo de importación de ListView
de Django.puntos de vista.View genérico de importación
# Modelo de libros de importación
de .Libro de importación de modelos
# Definir clase para insertar múltiples datos
clase Bulkinsert (ListView):
# Definir modelo
modelo = libro
# Definir plantilla
Template_name = 'DisplayBookList.html '
# Lea todos los registros existentes de la mesa de libros
Queryset = libro.objetos.todo()
# Revisar la mesa de los libros está vacía o no
Si Qeryset.existes () == falso:
# Inserte 5 registros en la tabla de libros a la vez
Libro.objetos.bulk_create ([[
Libro (Title = 'Python Crash Course, 2nd Edition', Author = 'Eric Matthes', Price = 15, publica_year = 2019),
Libro (Title = 'Automatizar las cosas aburridas con Python, 2ª edición', autor = 'Al Sweigart', precio = 30,
publica_year = 2019),
Libro (Title = 'Learning Python', Author = 'Mark Lutz', Price = 15, Publicado_year = 2019),
Libro (Title = 'Head First Python', Author = 'Paul Barry', Price = 45, Public_Year = 2016),
Libro (Title = 'A Byte of Python', Author = 'Swaroop C H', Price = 15, Publicado_year = 2013),
])
# Devuelve todos los registros de la tabla de libros
Def get_queryset (self):
# Establecer el conjunto de consulta predeterminado
devolver libro.objetos.todo()

Modificar el contenido del URLS.py Archivo con el siguiente script. En el guión, el 'administrador/' la ruta se define para abrir el tablero de administración de Django y la ruta 'Libros/' se define para llamar al Bulkinsert.as_view () método que insertará cinco registros en la tabla de libros y devolverá los registros al archivo de plantilla.

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
Desde las vistas de importación de BookApp
urlpatterns = [
# Defina la ruta para el administrador
ruta ('admin/', administrador.sitio.URLS),
Path ('Libros/', Vistas.Bulkinsert.as_view ()),
]

Abra el tablero de administración de Django para verificar si los datos se insertan correctamente o no utilizan el bulk_create () función.

Los registros insertados del libros La tabla se mostrará en el navegador después de ejecutar la siguiente URL.

http: // localhost: 8000/libros/

Conclusión:

Se pueden insertar múltiples registros en la tabla de base de datos Django de diferentes maneras utilizando el bulk_create (). Una forma simple de insertar múltiples registros en la tabla de la base de datos utilizando este método se mostró en este tutorial para ayudar a los usuarios de Django a comprender la lógica detrás del proceso.