Criando modelos - 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
django.db.models.Model
Por exemplo, o arquivo models.py
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
name
age
name
CharField
max_length
age
IntegerField
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
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
age
id

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
db.sqlite3

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.