15.6. Modelos en Django: Migraciones de Bases de Datos

Página 80

Django es un marco de desarrollo web de alto nivel, escrito en Python, que promueve un desarrollo rápido y un diseño limpio y pragmático. Una de las características más poderosas de Django es su Mapeador relacional de objetos (ORM), que le permite interactuar con su base de datos como si estuviera escribiendo Python puro. En este contexto, analicemos una parte crucial del ORM de Django: plantillas y migraciones de bases de datos.

Los modelos en Django son la fuente única y definitiva de información sobre sus datos. Contienen los campos y comportamientos esenciales de los datos que está almacenando. En general, cada modelo se asigna a una única tabla de base de datos. Cada modelo es una clase de Python que hereda de django.db.models.Model, donde cada atributo de la clase representa un campo de base de datos.

Por ejemplo, si estás creando un sistema de blogs, es posible que tengas una plantilla de 'Publicación' como esta:


desde django.db importar modelos

clase Publicación (modelos.Modelo):
    título = modelos.CharField(max_length=200)
    contenido = modelos.TextField()
    pub_date = modelos.DateTimeField('fecha de publicación')

Aquí, cada instancia de 'Publicar' corresponderá a una fila en una tabla de base de datos, y cada clase de campo (CharField, TextField, DateTimeField) se convertirá a un tipo de campo de base de datos apropiado.

p>

Una vez que defines tus modelos, Django proporciona una poderosa herramienta para ayudarte a administrar tu base de datos llamada migraciones. Las migraciones son la forma en que Django almacena los cambios en sus modelos (y por lo tanto en el esquema de su base de datos); son solo archivos en el disco que describen los cambios que se realizarán en su base de datos. Django realiza un seguimiento de cuáles se han aplicado y proporciona herramientas para crear nuevas migraciones basadas en los cambios que ha realizado en sus modelos.

Por ejemplo, después de definir la plantilla 'Publicar' anterior, puede crear una nueva migración con el comando:


python administrar.py hacer blog de migraciones

Donde 'blog' es el nombre de la aplicación Django que contiene el modelo 'Post'. Esto creará un nuevo archivo de migración en el directorio 'migraciones' de tu aplicación, que Django utilizará para cambiar el esquema de la base de datos.

Para aplicar la migración a su base de datos, utilice el comando:


python administrar.py migrar

Esto aplicará todas las migraciones pendientes a su base de datos, cambiando el esquema de la base de datos para que coincida con sus modelos actuales.

Cuando trabaje con migraciones, es importante recordar que siempre debe utilizar las migraciones para cambiar el esquema de su base de datos. Esto incluye agregar o cambiar plantillas, cambiar campos en plantillas existentes o incluso cambiar el nombre de un campo. Las migraciones le permiten realizar estos cambios de manera controlada y consistente, asegurando que el esquema de su base de datos siempre coincida con el estado actual de sus modelos.

En resumen, los modelos de Django y las migraciones de bases de datos son herramientas poderosas que le permiten trabajar con datos de forma Pythonic. Con ellos, puedes concentrarte en escribir tu aplicación, sabiendo que Django manejará los detalles de la base de datos por ti.

Ahora responde el ejercicio sobre el contenido:

¿Cuál es el papel de las plantillas y las migraciones de bases de datos en el marco de Django?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Siguiente página del libro electrónico gratuito:

8115.7. Modelos en Django: consultas de bases de datos

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.