Novedades en Django 1.3: aún más potente y sencillo

La llegada de la primavera nos ha traído la versión 1.3 de Django, el conocido framework para Python, que viene cargado de importantes novedades y también cambios que rompen la compatibilidad con versiones anteriores.

Después de pasar por varias versiones beta y una release candidate en las últimas semanas ya disponemos de esta depurada versión final que supone, como viene siendo habitual, una mejora importante y un salto cualitativo que mantiene a los competidores mirando de reojo en el avance continuo de todos ellos.

El primer cambio incompatible importante afecta a la seguridad en los campos de tipo PasswordInput, donde la opción por defecto para el render_value, donde se indica si el campo debe ser devuelto al navegador en caso de fallar una validación, era True. Ahora es al contrario, justo lo más lógico. También en el ámbito de la seguridad encontramos que todas las comunicaciones por AJAX estaban exentas del control de CSRF (Cross Site Request Forgery), por lo que nos quitamos otro problema de encima. Los campos de tipo FileField ya no traen esa desagradable sorpresa en la cual, si borrabas un registro, se eliminaba también el fichero o ficheros asociados. Ahora ya no es así, de esta tarea, como es lógico, nos tendremos que encargar nosotros.

Respecto a las evoluciones de Django 1.3 nos encontramos con la grata sorpresa de las vistas basadas en clases, una característica que viene a afianzar el eslogan "batteries included" de la plataforma. Usando plantillas predefinidas y sobreescribiendo sólo las partes que necesitemos reducimos las líneas de código (aún más) en nuestras aplicaciones.

Por fin disponemos de una herramienta de Logging a nivel de framework , con sus manejadores y funciones necesarios para ser eficientes también en esta característica tan básica, es sorprendente que Django haya llegado hasta esta versión sin una herramienta de estas características.

Otra mejora se refiere al manejo de los ficheros estáticos en el servidor de desarrollo de Django, que siempre nos ha obligado a hacer cambios manuales en el urls.py un poco complicados y poco obvios, y ahora está integrado en la configuración básica. De todas formas sólo recordar que el servidor de desarrollo es simplemente para probar, nunca para poner en producción (tiene un rendimiento muy pobre con llamadas concurrentes por ejemplo).

Más información | Novedades en Django 1.3

Portada de Genbeta