0Pricing
Python Academy · Aula

Modelos e migrações

Defina e migre o banco de dados

Modelos e migrações é uma aula grátis de Python Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Python Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python Academy inclui 4 aulas no total.

Modelos do Django

Um modelo do Django é uma classe Python que define a estrutura de uma tabela do banco de dados. Cada atributo é um campo. Os modelos ficam no models.py de um aplicativo.

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200)
print('Post model defined')

Tipos de campo

O Django fornece vários tipos de campo que correspondem a tipos de coluna.

  • CharField para textos curtos (requer max_length)
  • TextField para textos longos
  • IntegerField, BooleanField, DateTimeField
from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200)
    body = models.TextField()
    views = models.IntegerField(default=0)
print('Fields map to columns')

A chave primária implícita

O Django adiciona automaticamente uma chave primária id com incremento automático a cada modelo, portanto raramente você precisa declarar uma.

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200)
    # 'id' is added automatically
print('id field is automatic')

Opções de campo

Os campos aceitam opções como default, null, blank e unique para controlar o comportamento e a validação.

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200, unique=True)
    published = models.BooleanField(default=False)
    subtitle = models.CharField(max_length=200, blank=True)
print('Options refine each field')

Datas

DateTimeField(auto_now_add=True) registra quando uma linha é criada pela primeira vez. auto_now=True a atualiza a cada salvamento.

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)
print('Timestamps set automatically')

Relacionamentos

Vincule modelos com ForeignKey para relacionamentos de um para muitos. on_delete informa ao Django o que fazer quando a linha referenciada é excluída.

from django.db import models

class Author(models.Model):
    name = models.CharField(max_length=100)

class Post(models.Model):
    author = models.ForeignKey(Author, on_delete=models.CASCADE)
print('ForeignKey links Post to Author')

O que são migrações?

Migrações são a forma usada pelo Django para transformar alterações nos modelos em alterações no schema do banco de dados. Elas funcionam como controle de versões do seu banco de dados.

# Migrations record schema changes over time
# so the database matches your models
print('Migrations track schema changes')

Criar migrações

python manage.py makemigrations analisa seus modelos e gera arquivos de migração que descrevem as alterações.

# python manage.py makemigrations
# -> blog/migrations/0001_initial.py
print('makemigrations writes migration files')

Aplicar migrações

python manage.py migrate aplica as migrações pendentes ao banco de dados, criando ou alterando tabelas.

# python manage.py migrate
# -> Applying blog.0001_initial... OK
print('migrate applies changes to the DB')

Fluxo de trabalho das migrações

O ciclo é: edite models.py, execute makemigrations e depois execute migrate. Repita sempre que seus modelos forem alterados.

# 1. Change models.py
# 2. python manage.py makemigrations
# 3. python manage.py migrate
print('Edit, make, migrate')

Consultando modelos

Cada modelo recebe um gerenciador chamado objects para consultas: Post.objects.all(), .filter(), .get() e .create().

# Post.objects.all()
# Post.objects.filter(published=True)
# Post.objects.get(id=1)
# Post.objects.create(title='Hello')
print('objects is the query manager')

Verificação rápida

Avalie seus conhecimentos sobre migrações.

Recapitulação

Você definiu modelos e aplicou as migrações correspondentes.

  • Os modelos são classes em models.py com campos tipados
  • O Django adiciona uma chave primária id automaticamente
  • ForeignKey vincula modelos; on_delete define o comportamento em cascata
  • makemigrations e depois migrate sincronizam o banco de dados
  • Model.objects consulta os dados

Perguntas Frequentes

A aula “Modelos e migrações” é grátis?

Sim — o texto completo de “Modelos e migrações” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Python Academy, atualize para CoddyKit PRO. O curso de Python Academy inclui 4 aulas no total.

O que vou aprender em “Modelos e migrações”?

Defina e migre o banco de dados Você pratica Python Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Python Academy?

Nenhuma experiência prévia é necessária. Python Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Modelos e migrações”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Python Academy?

Sim. Cada aula de Python Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Projetos e aplicativos
  2. Modelos e migrações
  3. Visualizações e URLs
  4. O administrador do Django
← Voltar para Python Academy