Django: el framework que asume que vas a necesitar un administrador

Django, framework de desarrollo web escrito en Python

Django es un framework de desarrollo web de código abierto escrito en Python que respeta el patrón modelo–vista–template. Se desarrolló en origen para gestionar sitios de noticias en Lawrence, Kansas, se liberó bajo licencia BSD en 2005, y debe su nombre al guitarrista de jazz gitano Django Reinhardt.

Lo que trae resuelto de fábrica

La decisión de diseño que define a Django es que viene «con las pilas puestas». Autenticación de usuarios, permisos, formularios, protección contra ataques comunes y un panel de administración generado automáticamente a partir de los modelos.

Ese panel es la característica que más tiempo ahorra en proyectos reales. En cualquier aplicación de gestión hay que dar a alguien una forma de editar los datos, y en Django eso está el primer día en vez de ser un mes de trabajo.

Cuatro ventajas concretas

  • Panel de administración funcional desde el inicio, sin escribirlo
  • Sistema de usuarios y permisos maduro y probado
  • ORM que evita escribir SQL para el noventa por ciento de los casos
  • Convenciones claras: dos proyectos Django se parecen entre sí

La cuarta es la que se agradece al entrar a un proyecto ajeno. Django impone suficiente estructura como para que la orientación sea rápida, algo que no ocurre con frameworks más permisivos.

El ORM: cuándo ayuda y cuándo estorba

El ORM de Django permite trabajar con la base de datos en Python en vez de en SQL, y para la mayoría de las consultas es más claro y más seguro. Pero conviene saber qué genera por debajo.

El problema clásico es la consulta que dentro de un bucle dispara una petición por cada elemento. Funciona perfecto con veinte registros y desmorona la aplicación con veinte mil. Django trae herramientas para resolverlo, pero hay que saber que existe el problema para buscarlas.

Por eso sostengo que un ORM no exime de entender SQL: lo hace innecesario el noventa por ciento del tiempo y absolutamente imprescindible en el diez por ciento restante, que suele ser justo cuando el proyecto ya está en producción.

Cuándo elijo Django

Para aplicaciones de gestión con varios tipos de usuario, permisos diferenciados y un modelo de datos que va a crecer. También cuando el proyecto va a necesitar procesamiento de datos, porque estar en Python pone todo ese ecosistema a mano.

Django y el tiempo de desarrollo

Lo que más sorprende al empezar con Django es cuánto se avanza el primer día y cuánto cuesta el detalle final. Es el patrón de los frameworks con convenciones fuertes: lo previsto sale casi solo, lo que se sale del molde exige entender la maquinaria por dentro.

Cuándo no

Para un sitio de contenido con formulario de contacto, Django es desproporcionado: WordPress lo resuelve en un día y el cliente puede mantenerlo solo. Y para desplegar en un hosting compartido básico se complica, que es justamente donde KumbiaPHP tiene sentido.

La elección entre frameworks casi nunca es sobre cuál es mejor, sino sobre quién va a mantener el proyecto y dónde va a vivir. La documentación oficial está en djangoproject.com y es de las mejores que existen.

Para cerrar

Django premia a quien entiende lo que hace por debajo y castiga a quien confía ciegamente en su magia. Esa es, en realidad, la característica de cualquier herramienta potente: acelera enormemente el camino correcto y también el equivocado. Aprender a leer las consultas que genera y a medir antes de optimizar es lo que separa un proyecto que crece de uno que hay que reescribir al segundo año.

Más artículos como este en el blog, y si quieres conversar sobre cómo aplicar esto a tu caso, puedes agendar veinte minutos sin costo.