Como usar Bulk_create em Django?

Como usar Bulk_create em Django?

Django Framework pode ser usado para criar um aplicativo da Web com um banco de dados escrevendo scripts em modelos.py e Visualizações.py Arquivos do aplicativo Django. Os dados podem ser inseridos nas tabelas de banco de dados usando o painel da administração Django ou escrevendo um script no Visualizações.py arquivo. O painel da administração do Django requer um login para um usuário autenticado acessar as tabelas do banco de dados. Registros únicos ou múltiplos podem ser inseridos nas tabelas de banco de dados escrevendo um script. Bulk_create () O método é uma das maneiras de inserir vários registros na tabela de banco de dados. Como Bulk_create () O método é usado para inserir os múltiplos dados em uma tabela de banco de dados Django será mostrada neste tutorial.

Pré -requisitos:

Antes de praticar o script deste tutorial, você deve concluir as seguintes tarefas:

  1. Instale a versão Django 3+ no Ubuntu 20+ (de preferência)
  2. Crie um projeto Django
  3. Execute o servidor Django para verificar se o servidor está funcionando corretamente ou não

Configure um aplicativo django:

Execute o seguinte comando para criar um aplicativo django nomeado Bookapp.

$ python3 gerencia.Py StartApp Bookapp

Execute o seguinte comando para criar o usuário para acessar o banco de dados Django. Se você já criou um, não precisa executar o comando.

$ python3 gerencia.py createSuperUser

Adicione o nome do aplicativo no Instalado_app parte de configurações.py arquivo.

Instalado_apps = [
..
'Bookapp'
]

Crie uma pasta chamada modelos dentro de Bookapp pasta e defina a localização do modelo do modelo no aplicativo no MODELOS parte de configurações.py arquivo.

Modelos = [

.. .
'Dirs': ['/home/fahmida/django_pro/bookapp/modelos'],
.. .
,
]

Crie um modelo para a tabela de banco de dados:

Abra o modelos.py arquivo do Bookapp pasta e adicione o seguinte script para definir a estrutura de livros mesas. Livro A classe é definida para criar uma tabela chamada livros com título, autor, preço, e publicado_year Campos. De acordo com o script, título e autor Os campos armazenarão dados de caracteres e preço e publicado_year Os campos armazenarão os dados inteiros. Aqui o título O campo é definido com o atributo exclusivo. Isso significa que o valor do título O campo não aceitará dados duplicados.

modelos.py

# Módulo de modelos de importação
de Django.Modelos de importação de banco de dados
# Defina a aula do livro para a tabela de livros
Livro da aula (modelos.Modelo):
título = modelos.Charfield (max_length = 100, exclusivo = true)
autor = modelos.Charfield (max_length = 100)
Preço = modelos.Integerfield ()
publicado_year = modelos.Integerfield ()

Execute o Maquemigrações comando para criar uma nova migração com base nas alterações feitas pelos modelos.

$ python3 gerencia.Py Makemigrações BOOTEPP

Execute o migrar comando para executar os comandos SQL e criar todas as tabelas no banco de dados que são definidas no modelos.py arquivo.

$ python3 gerencia.py migrar

Modificar o conteúdo do admin.py Arquivo com o seguinte conteúdo. Aqui, a classe de livros dos modelos é registrada usando o registro() método para exibir o livros Tabelas no painel da administração Django.

admin.py

# Importar módulo de administrador
de Django.Contrible Import Admin
# Modelo de livro de importação
de .Livro de importação de modelos
# Modelo de livro de registro
admin.site.registro (livro)

Crie um arquivo de modelo chamado DisplayBookList.html dentro de bookapp/ modelos/ pasta com o seguinte script. Este script exibirá todos os dados da tabela de livros em forma de tabular. Fora isso, para o loop é usado no script para iterar os dados passados ​​do Visualizações.py arquivo.

DisplayBookList.html



<br>Tutorial django bulk_create ()<br>



Lista de livros Python







% para livro em object_list %



% endfor %
EU IANomeAutorAno de publicaçãoPreço
livro.eu ia livro.título livro.autorlivro.publicado_year$ livro.preço



Modificar o conteúdo do Visualizações.py Arquivo com o seguinte script. Os nomes de modelo e modelo são definidos no Bulkinsert aula. get_queryset () O método da classe é definido no script para retornar todos os registros da tabela de livros. Por outro lado, Livro.objetos.todos() O método é usado para retornar todos os registros da tabela de livros. existe() o método é usado no script para verificar o livros A mesa está vazia ou não. Se este método retornar Falso Em seguida, cinco registros serão inseridos na tabela de livros usando o Bulk_create () método.

Visualizações.py

de Django.Atalhos de importação renderizar
# Módulo ListView de importação
de Django.Visualizações.Importação genérica ListView
# Modelo de livro de importação
de .Livro de importação de modelos
# Defina a classe para inserir vários dados
classe Bulkinsert (ListView):
# Defina modelo
modelo = livro
# Defina modelo
template_name = 'displaybooklist.html '
# Leia todos os registros existentes da tabela de livros
Queryset = livro.objetos.todos()
# Verifique a tabela de livros está vazia ou não
Se Queryset.existe () == false:
# Inserir 5 registros na tabela de livros de cada vez
Livro.objetos.Bulk_create ([
Livro (Title = 'Python Chegth Course, 2ª edição', Autor = 'Eric Matthes', Price = 15, Publicado_year = 2019),
Livro (Title = 'Automatize o material chato com Python, 2ª edição', Autor = 'Al Sweigart', Price = 30,
publicado_year = 2019),
Livro (Title = 'Learning Python', Autor = 'Mark Lutz', Price = 15, Publicado_year = 2019),
Livro (Title = 'Head First Python', Autor = 'Paul Barry', Price = 45, Publicado_Year = 2016),
Livro (Title = 'A Byte of Python', Autor = 'Swaroop C H', Price = 15, Publicado_Year = 2013),
]))
# Retorne todos os registros da tabela de livros
def get_queryset (self):
# Defina o conjunto de consultas padrão
Livro de retorno.objetos.todos()

Modificar o conteúdo do URLs.py Arquivo com o seguinte script. No script, o 'admin/' O caminho é definido para abrir o painel da administração Django e o caminho 'Books/' é definido para chamar o Bulkinsert.AS_VIEW () Método que inserirá cinco registros na tabela de livros e devolverá os registros ao arquivo de modelo.

URLs.py

# Importar módulo de administrador
de Django.Contrible Import Admin
# Importar caminho e incluir módulo
de Django.URLs Caminho de importação
De visualizações de importação do Bookapp
urlpatterns = [
# Defina o caminho para o administrador
caminho ('admin/', admin.site.URLs),
caminho ('livros/', visualizações.Bulkinsert.AS_VIEW ()),
]

Abra o painel do governo Django para verificar se os dados são inseridos corretamente ou não usando o Bulk_create () função.

Os registros inseridos do livros A tabela será exibida no navegador depois de executar o seguinte URL.

http: // localhost: 8000/livros/

Conclusão:

Vários registros podem ser inseridos na tabela de banco de dados Django de maneiras diferentes usando o Bulk_create (). Uma maneira simples de inserir vários registros na tabela de banco de dados usando esse método foi mostrada neste tutorial para ajudar os usuários do Django a entender a lógica por trás do processo.