Criando modelos no Django
No Django, os modelos representam a estrutura dos dados utilizados na aplicação. Esses dados são armazenados em bancos de dados, e os modelos fornecem uma interface estruturada para interagir com eles.
Ao criar uma aplicação no Django, o arquivo models.py
é automaticamente adicionado ao diretório do aplicativo. Esse arquivo é destinado à definição de modelos, que são representados por classes que herdam de django.db.models.Model
.
Por exemplo, o arquivo models.py
pode conter o seguinte código:
from django.db import models
class Person(models.Model):
name = models.CharField(max_length=20)
age = models.IntegerField()
Nesse exemplo, foi definida uma classe chamada Person
, que representa uma pessoa. Essa classe contém dois campos: name
e age
. O campo name
é do tipo CharField
, utilizado para armazenar sequências de caracteres. É obrigatório definir o parâmetro max_length
, que especifica o tamanho máximo da string armazenada. Já o campo age
é do tipo IntegerField
, projetado para armazenar números inteiros, representando a idade de uma pessoa.
No Django, cada modelo é associado a uma tabela no banco de dados. Contudo, logo após a criação do modelo, essa tabela ainda não existe no banco. Para criar a tabela correspondente, é necessário aplicar uma migração. As migrações são scripts que sincronizam a estrutura do banco de dados com as definições dos modelos.
A migração é realizada com o comando:
python manage.py makemigrations
Após a execução desse comando, um arquivo de migração será criado no diretório migrations
do aplicativo. Esse arquivo contém as instruções para criar a tabela no banco de dados. O conteúdo do arquivo gerado pode ser semelhante a este:
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Person',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=20)),
('age', models.IntegerField()),
],
),
]
Esse script define que a tabela terá três campos: id
, name
e age
. O campo id
é adicionado automaticamente pelo Django como chave primária, o que elimina a necessidade de declarar explicitamente um identificador único no modelo.
Depois que a migração é criada, ela precisa ser aplicada ao banco de dados para que as alterações sejam efetivadas. Isso é feito com o comando:
python manage.py migrate
Após a aplicação da migração, a tabela correspondente ao modelo Person
será criada no banco de dados. Ao abrir o arquivo db.sqlite3
em um visualizador de banco de dados, será possível confirmar que a tabela foi adicionada.
Durante o desenvolvimento do projeto, é comum que as definições dos modelos sejam alteradas. Novos campos podem ser adicionados, campos existentes podem ser removidos ou novos modelos podem ser criados. Sempre que alterações como essas forem realizadas, será necessário realizar novas migrações para manter a estrutura do banco de dados sincronizada com os modelos definidos.
Documentação oficial: