Codea Blog  

Blog Details

Desarrollo web con Python: Frameworks y bibliotecas más usadas.

 


Los Frameworks de desarrollo web son una herramienta esencial para la construcción de aplicaciones web, ya que proveen a los desarrolladores de una estructura a la cual seguir, manteniendo el código organizado y permitiendo así una fácil navegación y mantenimiento del sitio.

 

Aunque en esencia son lo mismo, su principal diferencia con una biblioteca de es el rango y la complejidad de las funciones o módulos que define. Las bibliotecas suelen usarse para realizar tareas especificas dentro de un código, como analizar y organizar datos, por lo que su alcance suele ser más limitado, siendo usadas como herramientas dentro de una aplicación mayor, mientras que un Framework, proporciona un conjunto completo de herramientas, funciones y plantillas para el desarrollo de una aplicación web, usualmente definiendo el flujo de trabajo a realizar.

 

Podríamos ver un Framework como una gran biblioteca con una estructura y alcance amplios pero relativamente fijos, capaz de gestionar una amplia gama de ordenes y respuestas en distintos entornos, desde el manejo de bases de datos y hasta los estilos de visualizacion del sitio en una aplicacion web.



En este artículo, revisaremos a algunos de los Frameworks de Python más utilizados para el desarrollo web, comenzando por que es un Framework y el rol que juega en el desarrollo web y las características que los hacen destacar frente a las demás opciones.

 

Es importante notar que no existe el “framework definitivo” para desarrollo web. Diferentes Frameworks pueden ser mas o menos eficientes dependiendo del tipo de proyecto que se quiera crear, por lo que al momento de elegir que framework utilizar, es muy importante tomar en cuenta las características del proyecto que se quiere montar, y en base a eso elegir el framework que mas se acomode a esas necesidades.

 


DEFINICIÓN DE FRAMEWORK.


Para empezar, tenemos que tener en claro que es un Framework.

 

Un Framework, provee de las funcionalidades básicas requeridas para desarrollar una aplicación web, incluyendo funciones como autentificación de usuarios, seguridad, acceso y manejo de base de datos, gestión de URLs y solución de errores comunes. Esto quiere decir, que no es necesario escribir el código base una y otra vez para cada aplicación web que estemos desarrollando, sino que solo se debe llamar a la función desde el framework, permitiendo al desarrollador concentrarse en las partes y funciones únicas de su aplicación.

 

Estos pueden ser usados para desarrollar un amplio rango de aplicaciones, como plataformas de redes sociales, sitios de E-commerce, sistemas de manejo de contenido y más.

 

Los Frameworks se pueden dividir en 2 categorías principales: Frameworks de Front End, que manejan la interfaz de usuario de la aplicación web, y Frameworks de Back End, que manejan la lógica del servidor y el almacenamiento de datos. Cabe señalar que existen Frameworks que pueden incluir tanto Front como Back End.

 

En general, los Frameworks ayudan a construir más rápido, de manera estructurada y eficiente, entregando componentes prediseñados y plantillas a seguir, facilitando en gran manera el trabajo de desarrollo de una aplicación web.

 


TIPOS DE FRAMEWORKS DE PYTHON.


 

PYTHON POSEE 3 CATEGORIAS PRINCIPALES DE FRAMEWORKS:


Micro-Framework

Poseen solo los componentes y funciones esenciales para el desarrollo web, permitiendo crear pequeñas aplicaciones y API’s de manera rápida y sencilla, comuna gran flexibilidad y control de parte del desarrollador.

 

Full-Stack Framework

Proporciona un conjunto completo de herramientas para el desarrollo de principio a fin, por lo que no es necesario el uso de distintos Frameworks para el desarrollo de una aplicación completa. Sin embargo, suelen tener una estructura más robusta y por lo tanto menos flexible que los Micro-Frameworks, asi como también requieren más tiempo para aprender.

 

Framework Asíncrono

Permite diseñar aplicaciones cuyo código no se encuentra en forma de bloques, esto significa que la aplicación tendrá la capacidad de realizar varias tareas al mismo tiempo en vez de tener que esperar al procesamiento de una solicitud antes de iniciar la siguiente. Este tipo suele usarse en programación dirigida a eventos.

 


FRAMEWORKS DE PYTHON MAS USADOS.

 

Segun la encuesta anual realizada por la JetBrains, los Frameworks y Librerias web mas usados en el mundo por los desarrolladores, son marcadamente 3: Flask, Django y FastAPI. Esto nos muestra una clara tendencia hacia lo solido de estos 3 Frameworks, su potencia y versatilidad.
 

 

Figura 01. Encuesta "Python Developers Survey 2022". JetBrains.

 

FLASK.

Flask es indiscutiblemente uno de los Frameworks del entorno de Python mas reconocidos a nivel mundial siendo usado en aplicaciones como Netflix, Uber y Trivago.


Se trata de un Micro-Framework, liviano y muy flexible para la creación rápida y sencilla de aplicaciones web. Su simpleza y minimalismo lo convierte en un Framework de rápido aprendizaje para el desarrollador, y su gran flexibilidad le permite acomodarse a un gran número de librerías y extensiones de terceros para agregar funcionalidades a la aplicación, siendo esta característica una de sus mayores virtudes al enfrentarse a otros Frameworks.

 

 Laos puntos débiles de Flask se encuentran en lo minimalista de sus características, haciendo necesaria la incorporación de extensiones y librerías que manejen aspectos críticos como la gestión de base de datos y la administración del sitio.

 

DJANGO.

Al igual que Flask, Djangoes un Framework ampliamente usado en todo el mundo.


Django es un Full-Stack Framework, que nos provee de una gran cantidad de herramientas, plantillas y módulos para facilitar el rápido desarrollo de sitios complejos, gestionando efectivamente tanto Front End como Back End. Desde su introducción en 2005, ha sido usado para crear algunos de los sitios y aplicaciones mas grandes del mundo, como Instagram, Pinterest, Discus y chess.com.

 

Django usa una arquitectura Model-View-Template e incluye características como administración y manejo de base de datos, plantillas, panel de control, formularios y mucho más, lo que lo convierte en un poderoso Framework para el desarrollo de sitios multi páginas, escalables en el tiempo, con un numero de características de seguridad ya incorporadas, y de fácil mantenimiento y actualización, debido a que su código tiene una estructura clara y organizada.

 

Se podría decir que las desventajas de usar Django radican en su limitada flexibilidad, debido al nivel de estructuración y complejidad en su código base, dificulta su aplicación para aplicaciones simples, además de presentar un alto nivel de dificultad para entender y editar sus módulos, lo que genera una barrera al querer salir de su estructura.

 

FastAPI.

FastAPI es un Framework bastante moderno, lanzado en 2018, cuya utilidad se centra en hacer una sola cosa espectacularmente bien: construir API’s.

 

Una API (Application Programming Interface), es una interfaz que permite y gestiona la correcta comunicación entre dos softwares distintos, permitiendo el paso o intercambio de información desde una aplicación a otra, sin tener que modificar ninguna de dichas aplicaciones. En palabras sencillas, una API toma un conjunto de información desde una aplicación y la reorganiza o transcribe para que pueda ser leida y usada por otra.

 

FastAPI ha ganado gran importancia y popularidad debido a su simplicidad en el desarrollo de cualquier tipo de API. De hecho, de acuerdo a PyPiStats, FastAPI tiene mas de 15,5 millones de descargas en los últimos 30 dias hasta la fecha de redacción de este Blog, superando con creces a muchos Frameworks Full-Stack como Django (9,5MM a la fecha).

 

Hay que tener en cuenta que el único propósito de FastAPI es el desarrollo de API’s por lo que aun necesitas algún framework de Front End para mostrar el sitio al usuario.

 


Conclusiones.


 

El desarrollo web a nivel mundial ha tenido un creciente interés en Python durante los ultimos años, esto debido a su gran versatilidad y rapido aprendizaje. Es ademas muy apetecido su uso en Data Science y Machine Learning y su gran comunidad pone al alcance de la mano un amplio soporte y recursos como Frameworks y librerías que permiten crear aplicaciones web de manera rapida y sencilla con tan solo un par de lineas de código.

 


Referencias.

1.- What is a Web Aplicarion?. (s.f.). Amazon.
aws.amazon.com/what-is/web-application/?nc1=h_ls

2.- Diaz, Daniel. (27 Junio 2023). 25 Python Frameworks to Master in 2023, Kinsta.
https://kinsta.com/blog/python-frameworks/

3.- Ramotion. (2023, noviembre 1). Exploring the Top Python Frameworks for Web Development. Ramotion.
www.ramotion.com/blog/python-frameworks-for-web-development/

4.- Sheldon, Robert. (s.f.). web development framework (WDF). Techtarget.
www.techtarget.com/searchcontentmanagement/definition/web-development-framework-WDF

5.- Sharma, Pooja. (30 Diciembre 2021). Flask vs Django in 2022: Which Python Framework to Choose?. Cynoteck.
cynoteck.com/blog-post/flask-vs-django/

6.- Django vs. Pyramid - comparing Python Web Frameworks. (13 Enero 2023). Sunscrapers.
sunscrapers.com/blog/django-vs-pyramid-comparing-a-python-web-frameworks/#pyramid

7.- Ankush. (2 Junio 2023). Top 9 Asynchronous Web Frameworks for Python. Geekflare.
geekflare.com/python-asynchronous-web-frameworks/

8.- Korsun, Julia. (22 Junio 2023). 10 Popular Websites Built With Django. Djangostars
djangostars.com/blog/10-popular-sites-made-on-django/

9.- What is an API?. (2 Junio 2022). Redhat.
www.redhat.com/en/topics/api/what-are-application-programming-interfaces

10.- Frye, Ma-Keba. (s.f.). What is an API?. Mulesoft.
www.mulesoft.com/resources/api/what-is-an-api

11.- Sharma, Shivam. (22 Abril 2022). Top 10 Python Frameworks for Web Development in 2023. Zestminds.
www.zestminds.com/blog/python-frameworks/

12.- Python Developers Survey 2022. (2022). JetBrains.
lp.jetbrains.com/python-developers-survey-2022/



 

Comentarios

Registrate o Inicia Sesión para comentar y obtener Cursos de pago gratis

function loadurl(){ var val1 = document.getElementById("valor3").value; console.log(val1); if(val1){ window.location = "/comunidad/blog/filtrar/"+val1+"/"} }