Aplicaciones y ORM de Django#
En esta segunda parte se introduce el concepto de aplicación en Django y se utiliza el ORM para definir el esquema de la base de datos.
Crear una aplicación#
Un proyecto Django puede contener múltiples aplicaciones, cada una encargada de una funcionalidad específica. Las aplicaciones pueden reutilizarse en distintos proyectos.
Para crear una app llamada movies:
python3 manage.py startapp movies
La estructura típica de una aplicación incluye archivos para modelos, vistas, pruebas y administración.
Note
Asegúrate de agregar a .gitignore archivos compilados de Python como
*.pyc y directorios __pycache__/.
Definir modelos con el ORM#
El ORM de Django permite definir el esquema de la base de datos usando clases Python. Django se encarga de traducir estas definiciones a tablas relacionales.
Ejemplo de modelos en movies/models.py:
1from django.db import models
2from django.contrib.auth.models import User
3from django.core.validators import MaxValueValidator, MinValueValidator
4
5class Genre(models.Model):
6 name = models.CharField(max_length=200)
7
8 def __str__(self):
9 return self.name
10
11class Movie(models.Model):
12 title = models.CharField(max_length=200)
13 overview = models.TextField()
14 release_date = models.DateTimeField()
15 running_time = models.IntegerField()
Agregar la aplicación al proyecto#
Para que Django reconozca la aplicación, debe agregarse en INSTALLED_APPS dentro
de settings.py:
INSTALLED_APPS = [
"movies.apps.MoviesConfig",
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
]
Note
Las aplicaciones incluidas por defecto proveen autenticación, sesiones y manejo de archivos estáticos, que se utilizarán más adelante en el curso.
Migraciones: sincronizar modelos y base de datos#
Django utiliza migraciones para sincronizar los modelos definidos en Python con la base de datos real.
El flujo típico es:
python manage.py makemigrations
python manage.py migrate
Cargar datos de ejemplo#
Para cargar datos iniciales se puede crear un comando de administración personalizado. Este enfoque es útil para automatizar tareas repetitivas o preparar entornos de prueba.
El comando load_movies inserta datos de ejemplo asumiendo una base vacía.
En esta parte logramos:
Crear una aplicación Django.
Definir modelos con el ORM.
Entender el rol de las migraciones.
Cargar datos iniciales mediante un comando personalizado.