Modelo Django
El modelo describe los datos de forma precisa y única. Contiene campos y comportamientos importantes de los datos que almacena. En términos generales, cada modelo mapea una tabla de base de datos.
Conceptos básicos:
cada modelo es una clase de Python,
y cada atributo de estas clases heredado de django.db.models.Model es equivalente a un campo de base de datos.
Con estos, Django proporciona una API generada automáticamente para acceder a la base de datos;
Modelo de diseño
Django se puede usar sin una base de datos. Proporciona un mapeador relacional de objetos. Con esta tecnología, puede usar código Python para describir la estructura de la base de datos.
Puede utilizar poderosas declaraciones de modelo de datos para describir su modelo de datos, lo que resuelve el problema del esquema de la base de datos durante varios años. El siguiente es un ejemplo conciso:
from django.db import models
class Reporter(models.Model):
full_name = models.CharField(max_length=70)
def __str__(self):
return self.full_name
class Article(models.Model):
pub_date = models.DateField()
headline = models.CharField(max_length=200)
content = models.TextField()
reporter = models.ForeignKey(Reporter, on_delete=models.CASCADE)
def __str__(self):
return self.headline
Correspondencia entre modelo y base de datos
Este ejemplo define un modelo de persona con first_name y last_name:
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
first_name y last_name son los campos del modelo. Cada campo se designa como un atributo de clase y cada atributo se asigna a una columna de la base de datos.
El modelo de persona anterior creará una tabla de base de datos de la siguiente manera:
CREATE TABLE myapp_person (
"id" serial NOT NULL PRIMARY KEY,
"first_name" varchar(30) NOT NULL,
"last_name" varchar(30) NOT NULL
);
Modelo de datos de aplicación
A continuación, ejecute la utilidad de línea de comandos Django para crear automáticamente las tablas de la base de datos:
$ python manage.py makemigrations
$ python manage.py migrate
Referencia bibliográfica
Dirección: Django 3.0API