Comenzando con los modelos Django

¿Qué son los modelos de Django?

Un ‘modelo de Django’ generalmente se refiere a una tabla en la base de datos, los atributos de ese modelo se convierten en la columna de esa tabla. En un ejemplo más del mundo real, crearía un modelo para cualquier entidad en su aplicación y almacenaría sus atributos con campos django que manejan automáticamente las conversiones de tipos de datos para la base de datos que estaría usando.

Una de las grandes características de Django es su ORM, no tienes que escribir ninguna consulta a la base de datos, e incluso se recomienda NO escribir una cuando uses Django. ORM convierte sus ‘modelos de Django’ y todas las operaciones que realiza con él en las consultas de base de datos correspondientes. Esto significa que toda la manipulación que tienes que hacer, ahora con los objetos python creados a partir de ese modelo, y todo el material de la base de datos subyacente estaría a cargo del ‘ORM’ de Django. Hay un montón de ajustes y personalizaciones que podrías hacer con él.

El ORM de Django es compatible con todas las principales bases de datos como Postgres, MySQL, sqlite3 y otras bases de datos empresariales provistas con los controladores adecuados. Esto también significa que no tiene que preocuparse por la base de datos subyacente que está utilizando, o incluso si desea cambiar de una base de datos a otra, puede hacerlo sin cambiar una sola línea de la lógica de su aplicación, simplemente cambie la cadena de la base de datos. desde settings.py, descargue los datos antiguos y debería estar listo para comenzar.

Ejemplo de modelo de Django

Un ejemplo simple sería para una aplicación de gestión de bibliotecas; tendrías 2 modelos, por ejemplo, estudiante y libro

en modelos.py:

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 principal a ningún atributo, Django asignaría automáticamente un atributo llamado id, que se asignaría e incrementaría automáticamente en la creación de filas nuevas

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

Django tiene muchos Fields incorporados disponibles, o incluso puedes crear los tuyos propios.

Django también admite relaciones entre modelos, muchos a muchos, uno a uno, muchos a uno.

Documento detallado de Django para [Modelos] (https://docs.djangoproject.com/en/1.11/topics/db/models/)

Instalación o Configuración

En general, cada modelo se asigna a una sola tabla de base de datos. Debemos escribir el tipo de campo, los límites, el tamaño, etc. en el archivo model.py de la aplicación. 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)

A continuación, debemos informar a Django en settinggs.py sobre la aplicación que utilizará este modelo.

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

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

python manage.py migrate

migrate creará las bases de datos necesarias comprobando app_installed en setting.py

Mediante makemigrations, Django conocerá los cambios que se realizan en los modelos.

python manage.py makemigrations

Eso es todo. Se crea su base de datos y puede ver el esquema en la terminal

python manage.py sqlmigrate app_name 0001