Modelo Plantilla Controlador
Así como existe el Modelo Vista Controlador (MVC), Django trabaja con Modelo Plantilla Controlador o Model Template View o MTV si queremos asociarlo con algo conocido, esto es una implementación alternativa de Django sobre el MVC, los creadores del framework no querían simplemente una estructura rígida, si no que querían un desarrollo veloz y dinámico, debido a que si las cosas deben pasar, deben realizarse rápidamente.
Para entender esto veamos que hace cada una de las partes de nuestro MTV.
Modelo
El modelo es nuestro encargado de manejar todo lo correspondiente con lógica de Base de datos y estructura de nuestra aplicación, de esta manera encapsulamos las reglas de nuestro negocio y la estructura de nuestra aplicación.
Vista
Las vistas en Django tienen muy poco en común con el paradigma clásico del MVC, ya que estás combinan sus funcionalidades con los controladores, de tal manera que en Django una vista acepta entrada de datos y dependiendo de la lógica de la aplicación puede presentar datos y mostrarlos acorde al modelo.
Las vistas son definidas como funciones Python estándar y estas son llamadas a través de URL especificas por el usuario, como mencionamos las vistas tienen la potestad de interactuar directamente con el modelo para hacer operaciones CRUD de la forma en que se necesite con una conexión directa al modelo.
Plantilla o Template
La vista se encarga de determinar que hay que mostrar según las acciones ejecutadas y nuestra plantilla es la que va a decidir como se va a mostrar esta información, Django nos provee con un lenguaje de plantillas que nos ayuda a generar el HTML con los datos que nos suministre la vista y aunque está muy ligado a Python no es necesario conocerlo a fondo, por lo que podemos tener un ingeniero de UI que no sepa Python pero que nos desarrolle plantillas para nuestra aplicación Django.
A pesar de todo lo expuesto, el motor de plantillas de Django no es lo único con lo que podemos trabajar ya que tenemos la potestad de elegir otro motor compatible si lo deseamos.
Veamos a continuación una imagen que ilustra un poco el ciclo que cumple el patrón MTV:
Como podemos ver, la vista es nuestro intermediario entre lo que vamos a mostrar de una forma y lo que tenemos en nuestra estructura interna en Base de Datos.
Lo que va a unir estas 3 partes que hemos visto es la URL, a través de ella es que nuestra aplicación va a decidir que vista utilizar y así podremos mostrar una plantilla u otra, al principio puede parecer que es muy similar al MVC pero la forma en que lo implementa Django dista de ser igual.