Las siglas en ingles MTV corresponden a Model (Modelo), Template (Plantilla) y View (Vista). En este post me referiré a las plantillas como templates, ya que su uso en el español es bastante común.
En la practica el patrón MTV es muy similar al MVC a tal punto que se puede decir que Django es un framework MVC. Realmente este no se desviá demasiado del patrón Modelo Vista Controlador, simplemente lo implementa de una manera distinta y para evitar confusiones es llamado MTV.
Sumario contenido:
En primer lugar analicemos el Modelo Vista Controlador (MVC o Model View Controller) y luego veremos como la lógica no cambia, solo el nombre que se le da a cada componente en el Modelo Template Vista.
Modelo Vista Controlador (MVC)
-
Modelo: Es el que se encarga de manipular la información de la aplicación, la cual usualmente esta almacenada en la base de datos.
-
Vista: Decide que información mostrar y cómo mostrarla.
-
Controlador: Es quien responde a las peticiones, decide que vista usar y si es necesaria información accede al modelo.
Model Template Vista (MTV)
En Django, el controlador sigue estando presente, nada más que de una manera intrínseca, ya que todo el framework Django es el controlador.
-
Modelo: Maneja todo lo relacionado con la información, esto incluye como acceder a esta, la validación, relación entre los datos y su comportamiento.
-
Vista: Es un enlace entre el modelo y el template. Decide que información sera mostrada y por cual template.
-
Template: Decide como sera mostrada la información.
Por desgracia, la interpretación de "view" (vista) en otro ámbito puede hacer referencia a "al modo de presentación de los datos" y en un framework web distinto a Django el termino "view" puede considerare como el "controlador" y "template" como la "vista". Esto es una desafortunada confusión a raíz de las diferentes interpretaciones de MVC. No te preocupes, con la practica con solo pensar en "view" de Django sabrás exactamente su función. Lo mejor es abstraerse de estar comparando siempre ambos modelos y enfocarse solo en comprender los conceptos del framework en uso.
Funcionamiento MTV de Django
Al momento de hacer click en un enlace o escribir una dirección (1) a lo primero que se accede es al mapa de URLs (también conocido como URL map o URL conf), en este archivo cada ruta esta asociado con una view (2), si se necesita algún dato se solicitara este a model (3) el cual a su vez generara la consulta a la base de datos, cuando los datos han sido traídos estos son enviados al template (4) que contiene la lógica de presentación para estos. Luego de "pintar" la pagina esta se enviá al navegar que hizo la solicitud (5).
Espero haber sido claro y no muy técnico, y recuerda que lo importante es comprender los conceptos, luego formularlos y explicarlos en tus propios términos.
Written by @EspiFreelancer with StackEdit.