Mapeando um banco de dados existente com Django

eKode
eKode
Published in
3 min readMay 31, 2018
Como mapear um banco de dados existente com Django

O Django é um ótimo framework para desenvolvermos aplicações do zero, porém há vezes que precisamos utilizar uma base de dados já existente em um projeto Django, seja para realizar uma migração ou a criação de um recurso urgente para a empresa.

Para isso, podemos analisar o banco de dados e codificar, manualmente, sua estrutura em um projeto Django, o que pode fazer com que o desenvolvedor perca horas de trabalho (a depender do tamanho da base de dados).

Pensando nisso, a equipe de desenvolvimento do Django criou uma ferramenta que analisa as tabelas do banco de dados e mapeia sua estrutura, entregando isso “de mão beijada” pra você utilizar em seus projetos.

Se um dia você se deparar com essa situação, keep calm e veja nessa dica rápida como realizar este processo de forma rápida e simples.

Estrutura do projeto

Utilizaremos como teste uma aplicação simples na versão 2.0.5 do Django (release mais atual no momento da escrita deste post) e um banco de dados MySQL com a seguinte estrutura:

Estrutura do banco de dados utilizado

O banco de dados utilizado como teste possui uma estrutura simples: uma tabela chamada cliente e seus atributos (id, nome, idade, sexo e profissão)

Mapeando o banco de dados no Django

Agora, chega de enrolação e mãos a obra. O primeiro passo é realizar a conexão do nosso projeto Django com o banco de dados descrito anteriormente. Para isso, no arquivo settings.py, definimos o seguinte bloco de código:


DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: ‘clientes’,
‘USER’: ‘root’,
‘PASSWORD’: ‘root’,
‘HOST’: ‘localhost’, # Or an IP Address that your DB is hosted on
‘PORT’: ‘3306’,
}
}

Onde os campos são responsáveis por:

* ENGINE: Definimos o tipo de banco de dados que utilizaremos em nossa aplicação. No nosso caso, será utilizado o banco MySQL.
* NAME: Nome do banco de dados a ser utilizado.
* USER: Nome do usuário que possui acesso ao banco de dados.
* PASSWORD: Senha de acesso ao banco de dados.
* HOST: Endereço do servidor do banco de dados. Nesse caso, por utilizar o banco local, definimos apenas como localhost.
* PORT: Porta de acesso ao banco de dados.

Feito isso, agora precisamos criar a estrutura das tabelas existentes em nosso banco de dados no arquivo models.py do projeto. Para isso, utilizamos o seguinte comando no terminal (ou prompt de comandos):

python manage.py inspectdb > app/models.py

Sendo assim, o comando inspectdb vai analisar o banco de dados MySQL existente e mapear sua estrutura diretamente no arquivo models.py do nosso projeto, onde as tabelas existentes em nossa base de dados serão criadas, conforme podemos ver abaixo:


class Cliente(models.Model):
idcliente = models.IntegerField(primary_key=True)
nome = models.CharField(max_length=45)
idade = models.IntegerField()
sexo = models.CharField(max_length=45)
profissao = models.CharField(max_length=45, blank=True, null=True)
class Meta:
managed = False
db_table = ‘cliente’

Sendo assim, já estamos prontos para manipular os dados da nossa tabela cliente em nosso projeto Django.

Confira a versão em vídeo desta dica em nosso canal do YouTube:

Como mapear um banco de dados existe com Django

--

--

eKode
eKode
Editor for

Sua plataforma de cursos de programação.