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.