Django Models

Gerenciar banco de dados é sempre uma tarefa desafiadora, entretanto, o Django descomplica esta etapa do projeto.

Luís Gustavo | Jan. 2, 2023, 6 a.m. | Django

{post.titulo_post}}

O Django é um framework incrível, utilizado em diversas empresas pelo mundo, desde startups a grandes empresas, um de seus recursos mais incríveis é o Django Models, que segundo a sua própria documentação “O model é a fonte única e definitiva de informações sobre os seus dados.”(tradução livre). Deste modo, em uma aplicação Django tudo que se refere a modelagem, campos e comportamentos em um banco de dados é realizado pelo seu ORM, e definido através de um arquivo models.py existente em cada app do projeto.


O Python é a linguagem utilizada para criar e modelar banco de dados no Django, cada tabela é representada através de uma classe Python, que herdam de django.db.models.Model. Cada atributo da classe representa um campo no banco de dados, que podem ter comportamentos de acordo com a modelagem do banco. Para resumir, funciona da seguinte forma, o nome da classe será o nome da tabela no banco de dados, e cada atributo da classe, suas respectivas colunas.


Assim, é possível desenvolver um projeto com Django sem utilizar nenhum código SQL, por mais que seja extremamente importante que um desenvolvedor saiba o básico desta linguagem. Os campos disponíveis pelo ORM possuem todos os tipos de dados normalmente utilizados, mas caso nenhum deles resolva a necessidade do seu projeto, você também pode criar o seu próprio model, seguindo a documentação. É possível realizar relacionamentos entre as tabelas, assim como no SQL, nas suas mais variadas opções.


É importante saber que por padrão o Django gera um campo chamado id, que é a chave primária de cada tabela. É possível alterar esta funcionalidade caso seja necessário, basta adicionar primary_key=True no campo da tabela que desejar. Após a modelagem do banco de dados adicione o nome da app no arquivo settings.py do projeto, para que seja possível realizar as migrações no banco de dados, que inclusive devem ser realizadas a cada alteração no models.


Para este artigo será criado um banco de dados referente a um aplicativo de notas diárias, que terá os seguintes campos.



Diagrama do banco de dados


O Django permite utilizar os principais banco de dados do mercado, como PostgreSQL, MySQL e Oracle, mas neste momento está sendo utilizado o SQLite.


Para criar o banco de dados, será utilizado este python module models.py, que está presente na app task. O projeto está disponível no github: todo-api.


"""Defining the APP Task database."""

from django.db import models

 

 

class Task(models.Model):

   """Table Task Fields."""

 

   title = models.CharField(max_length=50)

   description = models.CharField(max_length=255)

   date = models.DateField()

   status = models.BooleanField(default=False)

 


models.py


Após a escrita do module models.py é importante realizar os seguintes comandos no terminal, na mesma ordem.


1ª - python manage.py makemigrations

2ª - python manage.py migrate


Após esta etapa, será gerado um arquivo de migrations na app task, além de ser adicionado estes novos campos no banco de dados do projeto. 


Compreender o conceito de models no Django é fundamental para um desenvolver que utiliza este framework, recomendo muito a leitura da documentação onde explica em detalhes todos os recursos disponíveis neste framework, e muitos outros recursos avançados. Havendo dúvidas, deixe um comentário abaixo, muito obrigado.

Deixe um comentário