Django #1: introducción y el patrón MTV

¿Qué es Django?

Django es un web framework de código abierto, escrito en Python.

”Quizás, si ya llevas un tiempo trabajando en la web, estés más familiarizado con él terminó  framework, si no, aquí tenemos un artículo donde te lo explicamos”

Flask o Django: el framework adecuado para iniciar en el desarrollo web

“de todos modos no pasa nada aquí te lo explico de nuevo”

Framework

Un framework es conjunto de componentes, facilme reutilizables, escalables y de fácil mantenimiento, de allí el anglicismo, framework(mesa de trabajo). Verás cuando estamos construyendo un sitio web existen ciertos conjunto de componentes que necesitarás en casi cualquier implementación web:

  • Autenticación de usuarios(registrarse, iniciar sesión, cerrar sesión).
  • Panel de administración para tu sitio web(en esto Django se luce).
  • Formularios.
  • Una forma de subir archivos.

”Entre otros muchos componentes, que si alguna vez has programado en PHP orientado a objetos, sabrás que se vuelven repetitivos y monótonos, de aplicación en aplicación. Ya sabes lo que vendría a ser el CRUD(Create, Read, Update, Delete o Crear, Leer, Actualizar, Eliminar).”

Los frameworks existen para ahorrarte tener que reinventar la rueda y ayudarte a aliviar la carga de trabajo cuando construyes un sitio.

¿Por qué usar un framework?

Muchos purista del código especialmente en Python te dirán cosas como:

“Los verdaderos programadores, solo hacen código puro.”

“Los frameworks son para niñ@s.”

“Solo los que no saben programar no usan SQL puro.”

“La versión 2.7 manda.”

Pero lo cierto es que, los frameworks como Django dejan a tu disposición una serie de herramientas y componentes, que reducen y mejoran de manera significativa el ritmo de trabajo de tu aplicación, permitiendo de esta manera, concentrarse en áreas que por su complejidad o naturaleza requieran un mayor carga de trabajo, delegando de esta manera el trabajo de desarrollo en áreas más específicas y dejando que el framework se encargue de las tareas más repetitivas o que por su simplicidad representen una carga innecesaria en el ritmo de trabajo.

¿Y de qué va MTV, en todo esto?

Bueno veras, en la construcción de un sitio web, aplicación o programa, existen algo llamado patrones de diseño, que no son más que patrones para resolución de problemas en el desarrollo de tu aplicación.

”básicamente es la forma en la que se estructurara el flujo de datos de tu aplicación, un protocolo que te guia en la forma en la que se deben afrontar los proble.”

Uno de los patrones de diseño más utilizados y más conocidos es el MVC(Modelo, Vista, Controlador), que propone lo siguiente:

M significa “Model” (Modelo), la cual es una capa de abstracción en código de la base de datos manejada como un objeto a través del framework, el cual se encarga de la comunicación e interacción con la base de datos.

V significa “View” (Vista), a la que le designa nuestra lógica de presentación(Frontend), la manera en la que se presentan y muestran, los datos extraídos de la base de datos a través del modelo, que hayan sido requeridos por el controlador.

C significa “Controller”(Controlador), la sección más reactiva de nuestra aplicación  y sobre la cual se suele realizar la mayor parte de nuestro trabajo de Backend(nuestra lógica de negocio), es el intermediario(Middleware) entre las solicitudes de usuario(cliente) a través de la vista y nuestros modelos. Se encarga de designar qué datos deben ser pedidos al modelo y mostrados en la vista.

“Muy bien ya sabemos que es MVC, entonces… que rayos es MTV.”

El MVC es uno de los patrones de diseño más utilizados, por su versatilidad y simpleza, pero, rompiendo dicha convivencia, debido a que la “C” en Django es manejada por el mismo framework y la parte más importante se produce en los modelos, las plantillas y las vistas, Django es conocido como un Framework MTV donde:

M significa “Model” (Modelo), donde sigue siendo, la capa designada a la interaccion y comunicacion, con la información alojados en la base de datos.

T significa “Template” (Plantilla),  en este caso la plantilla cumple la función de nuestra vista, la sección designada a la lógica de negocios, la representación de nuestros datos en código html.

V significa “View” (Vista), la “C” en el patrón de diseño MTV, es la capa designada a la lógica de negocios, a través de la que pasarán los datos del modelo a la plantilla.

“Si lo sé, puede que parezcan lo mismo, y hasta cierto punto lo son, pero mientras vayamos interactuando y trabajando con el framework te iras dando cuenta de las sutiles diferencia.”

Django a dia de hoy es uno de los frameworks de desarrollo web a la vanguardia de las nuevas tecnologías, posee uno performances y una escalabilidad increible. Este framework está hecho con dos palabras en mente, KISS (Keep It Simple Stupid) y DRY (Don’t repeat yourself).

“Recuerda nuestro seguir nuestros tutoriales, en nuestra próxima parte dejaremos de lado tanta palabrería para introducirte de lleno en el maravilloso mundo de Django, te enseñaremos a preparar tu ambiente de trabajo, como instalarlo correctamente y aprenderemos más de KISS y DRY”