Django es un framework (un conjunto de componentes diseñados para desarrollar sitios web con mayor facilidad y velocidad) de código abierto y desarrollado en Python. Sus creadores se dieron cuenta que frecuentemente, a la hora de construir un sitio web, los programadores utilizan un conjunto de elementos comunes, como la autenticación de usuarios (registro, inicio y cierre de sesión), un panel de administración, formularios, entre otros, por lo que Django (al igual que otros frameworks) viene a facilitar estas tareas para no comenzar de cero cada vez.
Django comienza su camino como proyecto en el año 2005, a partir de un grupo de desarrolladores que se dieron cuenta que era posible "reciclar" partes de un proyecto de desarrollo web y de esa manera, al tomar los elementos comunes entre ellos, se construye como framework, incorporando numerosas características hasta el día de hoy.
Numerosos sitios web famosos utilizan Django, como Pinterest, Instagram, y los sitios de Washington Post y The New York Times, entre muchos otros.
Funcionamiento
El proceso genérico que gobierna un proyecto de Django sigue los siguientes pasos básicos:
- El usuario realiza una petición, a través de una dirección web. La dirección de un sitio web es llamada URL - Uniform Resource Locator.
- Django consulta una lista de patrones (url_patterns) para saber qué hacer con la petición. Al detectar una coincidencia, responde con una vista (view) asociada.
- La vista realiza las acciones necesarias en la base de datos, como consultar, añadir o modificar información, e incluso comprobar si un usuario tiene permiso para hacerlo en primer lugar antes de enviar una respuesta. Las vistas se construyen con elementos básicos como plantillas (en HTML), formularios y relaciones con bases de datos.
- En función de lo anterior, la vista genera una respuesta a la petición del usuario, y muestra la información en el navegador a través de una página (escrita en HTML) que contiene esa URL.
Todo el proceso anterior implementa un patrón de diseño conocido como MVC (Modelo - Vista - Controlador), que determina la lógica seguida en el flujo de información. En dicho modelo, el Controlador recibe las peticiones del usuario solicita y manipula los datos del Modelo o base de datos, y envía una respuesta al usuario a través de una Vista que incorpora elementos específicos de una página web con la interfaz gráfica al usuario en HTML y CSS, entre otros.
Ten presente la siguiente estructura la próxima vez que generes un proyecto en Django, ya que te ayudará a orientarte a través de cada uno de los archivos .py y .html que encontrarás en el mismo, aplicando la lógica anterior: