¿Qué habrá de nuevo en Django 1.9?

imagen / Pythonízame
  
15 de Octubre de 2015   1  

El 23 de Septiembre de este año, Django lanzó el primer Release Candidate para la versión 1.9 de este popular framework y como ha sucedido en sus versiones anteriores, cada actualización trae consigo mejoras significativas en su performance, nuevas funcionalidades y corrección de errores de seguridad y muchos bugfixes. El día de hoy realizaremos el análisis de algunas nuevas funcionalidades que han dado a conocer para esta versión que aún se encuentra en construcción:

 

Compatibilidad Python

 

Django 1.9 requiere Python 2.7, 3.4, or 3.5. Desde la liberación de Django 1.8, se ha eliminado el soporte para Python 3.2 y 3.3 se ha agregado el soporte para Python 3.5.

 

Ejecutando acciones después de una transacción

 

El nuevo on_commit() permitirá realizar acciones después de que una transacción de base de datos se ha ejecutado con éxito . Esto es útil para tareas como el envío de mensajes de notificación, la creación de tareas en cola , o invalidación de cachés.

Esta funcionalidad del paquete "django-transaction-hooks" ha sido integrado al core de Django.

 

Validación de contraseñas

 

Django ahora ofrece validación de contraseña para ayudar a prevenir el uso de contraseñas débiles por los usuarios. La validación está integrado en el cambio de contraseña incluido y ren el reset form y es fácil de integrar en cualquier otro código. La validación se realiza por uno o varios validadores, configurados en el nuevo ajuste AUTH_PASSWORD_VALIDATORS.

 

Mixins de permisos para vistas basadas en clases

 

Django ahora viene con los mixins AccessMixin, LoginRequiredMixin, PermissionRequiredMixin y UserPassesTestMixin  incluidos para proporcionar la funcionalidad de django.contrib.auth.decorators a las vistas basadas en clases. Estos mixins se han tomado de, o están al menos inspirado en el proyecto django-braces.

 

Nuevo estilo para contrib.admin

 

El administrador de Django ahora tiene un diseño moderno, se mantiene con diseño plano con nuevos iconos SVG que se ven perfectos en las pantallas HiDPI. Todavía ofrece una experiencia totalmente funcional a los navegadores YUI’s A-grade. Navegadores antiguos pueden experimentar diferentes niveles de degradación elegante.

 

Ejecución de pruebas en paralelo.

 

El comando de prueba ahora soporta una opción --parallel para ejecutar pruebas de un proyecto en múltiples procesos en paralelo.

Cada proceso tiene su propia base de datos. Es necesario asegurarse asegurarse de que los diferentes casos de prueba no tengan acceso a los mismos recursos. Por ejemplo, los casos de prueba que tocan el sistema de archivos debe crear un directorio temporal para su propio uso.

  • Todos los sistemas operativos lo soportan (Todos menos Windows).
  • El Backend de Base de datos lo soportan (menos Oracle).

 

Características menores

 

Django.contrib.admin.

La url para los cambios en el admin ha cambiado: Actualmente las tenemos por default de la siguiente manera: /admin/<app>/<model>/<pk>/ y ahora contará con la estructura: /admin/<app>/<model>/<pk>/change/. Este cambio no debe afectar a nuestros proyectos a menos que hayamos realizado algunas modificaciones a las urls en el admin.

django.contrib.admindocs

La sección del modelo de los admindocs ahora también describe los métodos que toman argumentos, en lugar de ignorarlos.

django.contrib.auth

La iteración de conteo default para los hashes de password PBKDF2 ha incrementado un 20%. Este cambio no afectará a los usuarios que utilizan la subclase django.contrib.auth.hashers.PBKDF2PasswordHasher para cambiar el valor por defecto.

Este cambio compatible no afectará a los usuarios que han subclase django.contrib.auth.hashers.PBKDF2PasswordHasher para cambiar el valor por defecto.

django.contrib.contenttypes

Ahora es posible usar order_with_respect_to en los GenericForeignKey.

django.contrib.gis

Todas las GeoQuerySet han sido descontinuadas y han sido reemplazadas por sus funciones equivalentes que podemos encontrar aquí. 

La interfaz GDAL ahora soporta la integración de objetos GDALRaster tanto en archivos como en memoria a partir de datos crudos. Setters y propiedades Raster, como lo son las proyecciones o valores en pixeles, ahora serán añadidas.

django.contrib.postgres
  • Se ha añadido soporte para las operaciones de búsqueda rangefield.contained_by por algunos campos que corresponden a los campos de rango.
  • Se agrega el soporte para JSONField.
  • Ahora se integran funciones específicas de agregación.
  • Se corrige la serialización de DateRangeField y DateTimeRangeField.
  • Se agrega la función de base de datos TransactionNow.
Database backends

El backend de PostgreSQL (django.db.backends.postgresql_psycopg2) también está disponible como django.db.backends.postgresql. El nombre antiguo seguirá disponible para la compatibilidad de las versiones anteriores.

 

Si deseas conocer a fondo sobre esta nueva versión, te recomendamos leer las notas de lanzamiento en: https://docs.djangoproject.com/en/1.9/releases/1.9/



Alex Dzul

FullStack Python / Django Developer. #jslove

Etiquetas

Temas relacionados