Django: Modelos

Django implementa su propia herramienta para proporcionar ORM, como lo hace Hibernate por ejemplo para Java. Son herramientas de mapeo objeto-relacional (ORM) que facilitan el mapeo de atributos entre una base de datos relacional tradicional y el modelo de objetos de una aplicación. Ahora veremos como lo hace Django con un sencillo ejemplo.

models.py

En nuestra aplicación disponemos de un fichero models.py donde definiremos todas nuestras entidades, que mas tarde serán convertidas en tablas. Los identificadores no son necesarios especificarlos. Y las relaciones entre entidades ya las veremos mäs adelante.
Con las entidades creadas ahora toca ejecutar los comandos que transformen esa definición en nuestra base de datos. El primero para crear los ficheros de migración.
Y una vez tenemos la migración creada, ejecutamos esas migraciones. Verás que otras tablas son creadas adicionalmente, y eso es porque Django proporciona un admin por defecto para la gestión de nuetra base de datos y también las tablas necesarias para la autenticación de usuarios.
El resultado de esta ejecución, nuestra base de datos, se almacena en nuestro fichero de aplicación db.sqlite3. Ya veremos como usar MySQL o PostgreSQL.

Podras acceder desde ahora al admin de la aplicación: https://localhost:8080/admin Y esto es posible porque en el urls.py de nuestro proyecto tenemos especificado la url.
Pero antes de poder acceder necesitamos crear un super usuario, que lo hacemos con el siguiente comando:
El último paso que nos quedaría es informar a Django de que modelos queremos que se puedan gestionar en ese admin, y eso lo hacemos en el fichero admin.py


Para terminar, un ejemplo de como quedaría nuestra vista del post anterior accediendo a los datos en nuestra base de datos.
La documentación oficial está genial: https://docs.djangoproject.com/en/4.0/topics/db/models/

Comentarios

Entradas populares de este blog

Envío de checkboxes o selector multiple por AJAX con jQuery

Conceptos básicos de la POO

Patrones de Diseño Creacionales