Nesse artigo irei mostrar um passo à passo de como realizar uma busca de registros e listar no banco de dados.
1. Ferramentas.
Usarei o banco de dados SQLite que ja vem configurado como padrão no django e facilitará nosso entendimento, deixando essa explicação mais rapida;
Usarei, também, o editor de texto Visual Studio Code, mas nesse caso você poderá usar o editor do seu gosto.
OBS: Lembrando que eu darei foco ao sistema de buscas e não à questão de inserção de dados no banco, o exemplo que verás aqui será com registros ja inseridos no banco de dados, trarei somente a estrutura da base de dados.
2. Iniciando o projeto:
Tendo como base de que você ja instalou o django e configurou o ambiente virtual, inicie sua APP e seu PROJETO da seguinte forma:
Para iniciar o projeto: django-admin manage.py startproject config .
Para iniciar a app: django-admin manage.py startapp core
Obs: Dei o nome do meu projeto de config (ja que as configurações da aplicação se localiza naquele diretório);
Dei o nome na minha app de core, para representar a app principal da aplicação.
Utilizei o um “ponto final” logo após o nome do meu projeto para que, o django não crie subpasta no direitorio de configuração do projeto.
3. Instanciando a app no arquivo ‘settings.py’
Dentro do diretório ‘config’, entre no arquivo ‘settings.py’ e encontre o termo ‘INSTALLED_APPS’ e adicione sua app na lista, como na imagem a seguir:
Após realizar essa configuração, ja podemos abrir nossa app (pasta core, no meu caso) e iniciar a criação do nosso model.
1. ‘Models.py’, criando nosso banco de dados.
Dentro da nosso app entre na pasta ‘models.py’, onde criaremos nossa tabela do banco de dados.
Imagine a seguinte situação: “Temos uma tela de pacientes e queremos facilitar a busca dos pacientes, pelo nome”.
Nossa tabela ficará da seguinte forma:
Na linha 3 eu crio minha classe, quer representará minha tabela no banco de dados, na linha 8 crio uma classe Meta, para sobrescrever o método do django e renomear minha tabela.
Para confirmar a criação da nossa tabela, vamos dar um migrate:
python manage.py makemigrations -> Para receber as alterações
python manage.py migrate -> Para realizar as alterações
Se tudo ocorrer bem, sera retornado no terminal o seguinte contexto:
1. Template.
Para compor nosso template, usaremos bootstrap.
Faremos um alteração no arquivo config da nossa aplicação, por padrão o django busca o “HTML” dentro da pasta templates, pasta na qual temos que criar manualmente, iremos criar essa pasta na raiz do projeto e por sua vez mostrar para o django aonde ele deve buscar essa pasta.
Procure dentro do arquivo config o termo “TEMPLATES”, por padrão ele virá assim:
Iremos modificar esse trecho de codigo para ficar dessa forma:
1. Listando os dados na tabela.
Bom, como dito no inicio desse artigo, não entrarei no metódo de inserção de dados no banco. Sendo assim, iremos listar nossos dados na tabela, para isso iremos no arquivo “views.py” dentro da nossa app.
Faremos as seguintes modificações:
Agora, devemos ir no nosso arquivo HTML e criar uma estrtura para que nossa tabela receba esses dados:
Ja que temos a listagem vamos focar na busca desses dados.
No campo input do seu HTML use a tag “name” para que a nossa função reconheça o input e possa fazer a busca:
<form method="GET">
<div class="input-group-prepend">
<button class="btn btn-outline-secondary" type="submit" id="button-addon1">Buscar</button>
</div>
<input type="text" class="form-control" placeholder="" name="search" id="search">
</form>
Agora, em nosso arquivo “views.py” faremos nossa logica para que, o django realize a busca dos registros. Ficará da seguinte forma:
Agora se formos em nossa pagina e realizarmos uma busca em nosso input, veremos que ele listará somente os dados que contenham as letras que digitarmos, veja:
Assim fica nossa tela com a listagem geral.
Esse artigo tinha como finalidade mostrar como se realiza uma busca usando apenas o backend, sem ter conhecimento nenhum de Javascript e JQuery, mas requer um conhecimento prévio de Django para realizar corretamente o passo a passo dessa publicação. Espero que tenham gostado!