Hemos creado nuestro proyecto Django, exploramos su panel de administración y entendimos su estructura básica. Ahora, es momento de hablar de algo fundamental para cualquier aplicación: los datos. Si nuestra aplicación "agenda" va a manejar proveedores, clientes, compras, ventas, etc., toda esa información necesita un lugar seguro y organizado donde vivir. Ese lugar es una base de datos.
Muchos estamos acostumbrados a usar hojas de cálculo como Excel para organizar información. Y sí, para listas pequeñas o cálculos simples, ¡Excel es genial! Pero cuando empezamos a hablar de aplicaciones web que pueden tener cientos, miles o millones de registros, y donde necesitamos que la información esté bien estructurada, sea fácil de buscar, modificar y relacionar, una simple hoja de Excel se queda corta. Muy corta.
Una base de datos es mucho más que una tabla. Es un sistema diseñado específicamente para almacenar, organizar, proteger y recuperar grandes cantidades de información de manera eficiente.
Imagina una base de datos como un ropero gigante, con muchísimos cajones, cada uno etiquetado y con su contenido perfectamente ordenado. ¡Encontrar algo es mucho más fácil!
Tener la información bien organizada y clasificada en una base de datos nos permite:
Una base de datos estructura la información y nos da las herramientas para pedirle exactamente lo que necesitamos, cuando lo necesitamos.
Así como Python es un lenguaje para hablarle a la computadora en general, existe un lenguaje específico para hablar con las bases de datos (o al menos con la mayoría de ellas, las llamadas "bases de datos relacionales"). Este lenguaje se llama SQL (Structured Query Language, o Lenguaje de Consulta Estructurada).
Con SQL, podemos decirle a la base de datos cosas como:
SQL es un lenguaje muy potente y es una habilidad muy valiosa para cualquier desarrollador. Sin embargo, para empezar con Django, ¡tenemos una buena noticia!
No necesitas ser un experto en SQL para empezar a trabajar con bases de datos en Django. ¿Por qué? Porque Django viene con una herramienta increíblemente útil llamada ORM, que significa Object-Relational Mapper (Mapeador Objeto-Relacional). ¡Uf, qué nombre complicado!
Pero la idea es simple: el ORM es como un traductor súper inteligente que se interpone entre nuestro código Python y la base de datos.
El ORM de Django actúa como un traductor entre nuestro código Python y el lenguaje SQL de la base de datos.
Nosotros escribimos código Python para definir cómo queremos que sean nuestros datos (por ejemplo, cómo es un "Proveedor") y qué queremos hacer con ellos (guardar un nuevo proveedor, buscar uno existente). El ORM de Django toma ese código Python y, por arte de magia (bueno, no tanta magia, sino mucha programación inteligente por detrás), lo traduce a las sentencias SQL que la base de datos entiende.
¡No necesitas saber SQL (al principio)! Gracias al ORM, podemos interactuar con la base de datos usando Python, un lenguaje que ya estamos aprendiendo. El ORM se encarga del "trabajo sucio" de hablar con la base de datos por nosotros.
Eso sí, a medida que avances en tu camino como programador, aprender SQL te dará una comprensión mucho más profunda y te abrirá más puertas. ¡Pero para empezar, el ORM es nuestro mejor amigo!
Por ejemplo, si queremos definir qué información vamos a guardar para un proveedor, podríamos pensar en algo así:
Más adelante, le diremos a Django, usando código Python, que queremos una "tabla" llamada Proveedores con estas "columnas". Y el ORM se encargará de crear esa estructura en nuestra base de datos db.sqlite3.
El video de este capítulo profundiza en estos conceptos y te muestra más ejemplos.
Para guardar la información de nuestra aplicación (como compras, ventas, proveedores) de forma organizada y eficiente, usamos bases de datos, no simples hojas de cálculo. Para "hablar" con estas bases de datos se usa un lenguaje llamado SQL. Sin embargo, Django nos facilita la vida con su ORM (Object-Relational Mapper), una herramienta que traduce nuestro código Python a SQL, permitiéndonos interactuar con la base de datos sin necesidad de ser expertos en SQL desde el inicio.
Ahora que entendemos la importancia de las bases de datos y el rol del ORM, en el próximo capítulo veremos cómo definir los "tipos de datos" que usaremos para nuestros proveedores en Django. ¡Seguimos!