Los modelos de Django

El artículo de hoy lo dedicamos al Framework de desarrollo web Django. Serán una serie de tutoriales que iremos publicando sobre este poderoso Framework, el cual se ha puesto de moda gracias al auge del lenguaje Python. Si lo que quieres es convertirte en un jedi de Django, en AEPI tenemos el mejor curso para ti https://asociacionaepi.es/curso-profesional-de-django/

¿Qué son los modelos en Django?

Un Django model generalmente se refiere a una tabla de la base de datos, los atributos de ese modelo se convierten en las columnas de esa tabla esos atributos reciben el nombre de django fields los cuales manejan automáticamente las conversiones de tipos de datos para la base de datos que estemos usando.

Una de las grandes características de Django es su ORM, gracias a el no tenemos que escribir ninguna consulta de base de datos, e incluso se recomienda NO escribir una al usar Django. ORM convierte sus Django models y todas las operaciones que realiza con las consultas de base de datos correspondientes. Esto significa que toda la manipulación se hará ahora con los objetos de Python creados a partir de ese modelo, y todo el material de la base de datos subyacente será cuidado por el ORM de Django.

El ORM de Django es compatible con todas las bases de datos principales como Postgres , MySQL , sqlite3 y otras bases de datos de empresas provistas con los controladores adecuados. Esto también significa que no tenemos que preocuparnos por la base de datos subyacente que estemos utilizando, o incluso si deseamos cambiar de una base de datos a otra, podemos hacerlo sin cambiar una sola línea de la lógica de su aplicación, solo cambiamos la cadena de la base de datos en el archivo de configuración settings.py.

 

Ejemplo de modelo Django

Un ejemplo simple sería para una aplicación de administración de bibliotecas, tendríamos 2 modelos: student y book

Por lo que en el fichero models.py pondríamos:

from django.db import models

class student(models.Model):
roll_no = models.IntegerField(primary_key=True)
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)

Aquí le hemos dado a roll_no una clave principal para el modelo de estudiante, pero incluso si no le damos una clave primaria a ningún atributo, Django asignaría automáticamente un atributo llamado id , que se asignaría automáticamente y se incrementaría en la creación de nuevas filas.

Ahora podemos importar este modelo en sus views o en un proyecto e interactuar con él simplemente creando un objeto de ese modelo.

Django tiene muchos campos incorporados disponibles, o incluso podemos crear los nuestros también.

Django también admite relaciones entre modelos, many-to-many , one-to-one , many-to-one .

Puedes ver todas las opciones disponibles para los modelos de Django en este enlace: https://docs.djangoproject.com/es/3.0/topics/db/models/

Instalación o configuración

En general, cada modelo se asigna a una única tabla de base de datos. Esto creará la tabla y los campos necesarios en la base de datos.

''' models.py '''
from django.db import models

class table_name(models.Model):
field_name= models.field_type(conditions)

Luego debemos informar a Django en settings.py sobre la aplicación que usará este modelo.

''' settinggs.py ''''

INSTALLED_APPS = [
#...
'app_name',
#... ]

Casi terminamos, ahora necesitamos migrar esta aplicación para que se creen las tablas de la base de datos. En la terminal debemos escribir lo siguiente:

python manage.py migrate

El comando migrate creará las bases de datos necesarias marcando la app_installed en el setting.py

Ahora usaremos el comando makemigrations, gracias a el Django sabrá los cambios que se realizan en los modelos.

python manage.py makemigrations

En este punto ya tenemos creadas nuestras tablas en la base de datos, si queremos ver el esquema que se ha creado, podemos escribir en el terminal:

python manage.py sqlmigrate app_name 0001

Espero que este pequeño tutorial sobre los modelos de Django te ayude, si te ha gustado este artículo compártelo por favor, nos ayudas mucho!

Un saludo y nos vemos pronto

Jesús Jiménez

  • Share:

Deja un comentario

Your email address will not be published.

Enviar un mensaje




Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies
Call Now Button