¿Que hay de nuevo en la versión Django 2.0?

imagen / Bruce Mars
  
9 de Enero de 2018   0  

Diciembre 2017 fue la fecha de liberación de una de las versiones más esperadas del framework Django, la versión 2.0, y como todos los devs sabemos, cuando un software o herramienta realiza un brinco del número principal de su sistema de versionamiento, significa que trae cambios muy notorios y para muchos siempre es causa de emoción. 

Pues para no quedarnos con las dudas de lo nuevo que trae Django 2.0, a continuación presentamos un review express de este framework web. 

1. It worked! Ahora renovado!

Los que conocemos este framework desde años atrás, hemos podido conocer la página principal de bienvenida de un proyecto nuevo escrito en Django, un look sencillo con un par de colores en tonalidades azules y grises.

 

IT WORKS DJANGO 1.x

 

En la versión 2 podemos encontrarnos que ha sufrido un cambio total, manejando ahora un diseño más parecido al sitio oficial djangoproject.com y con mayor número de elementos que pueden ser útiles para los desarrolladores que inician de cero aprendiendo esta herramienta.

 

IT WORKS DJANGO 2.x

 

2. Django Admin ahora es responsivo. 

El kill feature que enamora a todos los programadores que inician con este framework es el Django Admin, que integra funciones que facilitan tareas de validación y administración de datos a nivel visual.

Una de las desventajas de este admin era que no tenía soporte responsivo y entrar a manejar información desde un dispositivo móvil era algo complicado, veíamos algo como esto: 

 

PANEL ADMIN - DJANGO 1.x

 

Con la nueva actualización 2.0, obtenemos una mejor visualización de nuestros datos tal como se muestra a continuación: 

 

PANEL ADMIN - DJANGO 2.x

 

3. Adiós Python 2.7

 

 

La serie de versiones Django 1.11.x será la última en soportar Python 2.7.x, lo cual representa un gran reto para todos los proyectos que manejan esta versión y que desean probar esta nueva actualización.

¡Pero no hay que preocuparse tanto! Recuerda que Django 1.11 es LTS (Long Term Support), lo cual significa que tenemos hasta el 2020 para ir preparándonos y realizar esta migración con tranquilidad y sin tanto estrés. 

¿Que es lo que recomendamos? Moverte a una versión de Python 3, de preferencia a la 3.5 o 3.6.

Django 2.0 será la última en dar soporte a Python 3.4, la cual tiene como end-of-life el mes de Marzo del 2019. 

4. Sintaxis de ruteo de URL ahora es más simple.

La nueva función "django.urls.path()" ahora nos permite escribir urls más simplificadas y entendibles, mejorando una URL que pudiera verse así:

url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),

Por una que nos quedaría así: 

path('articles/<int:year>/', views.year_archive),

La nueva sintaxis soporta "type coercion" para el envío de parámetros. En el ejemplo anterior vemos cómo la vista recibe un parámetro "year" como un integer en lugar de un string. Al actualizar a Django 2.0, podemos continuar utilizando la opción antigua de escritura de URL ya que no es una característica que de manera rigurosa necesitamos cambiar al actualizarnos. 

5. Window functions en consultas al ORM. 

Las funciones llamadas "Window Functions" proporcionan una forma de aplicar funciones a particiones. A diferencia de un "Aggregation function"  que calcula el resultado final para cada conjunto definido en un grupo, las "Window functions" operarán bajo frames y particiones, calculando un resultado para cada fila. 

Por ejemplo, para anotar cada película con la calificación promedio de las películas del mismo estudio en el mismo género y año de lanzamiento, realizaríamos lo siguiente: 

>>> from django.db.models import Avg, F, Window
>>> from django.db.models.functions import ExtractYear
>>> Movie.objects.annotate(
>>>     avg_rating=Window(
>>>         expression=Avg('rating'),
>>>         partition_by=[F('studio'), F('genre')],
>>>         order_by=ExtractYear('released').asc(),
>>>     ),
>>> )

De este modo, hacemos que sea fácil revisar si la película está calificada mejor o peor que sus similares. 

------

Existen más cambios menores que fueron integrados a esta nueva versión y también eliminación de funcionalidades que fueron advertidas que serían descontinuadas en Django 2.0.  Puedes consultar la lista completa de liberaciones desde este link: https://docs.djangoproject.com/en/2.0/releases/2.0/

¿Qué te parecieron los nuevos features? Nos gustaría que nos compartas tu opinión y experiencia al respecto. 

 



Alex Dzul

FullStack Python / Django Developer. #jslove

Etiquetas

Temas relacionados