Por qué Aprender a Desarrollar en Flask y/o FastApi este 2024

- Andrés Cruz

In english

En esta entrada, vamos a seguir hablando porqué debes de aprender Python, web, esta vez, no enfocado a Django:

Por qué deberías de Aprender a Desarrollar en Django y Python en general

Si no, a lo que sería de dos frameworks con estructuras muy similares como lo son Flask y FastAPI, que tienen más en común que si los comparamos con Django, al ser microframework y no un framework con “las baterías incluidas” como el caso de Django.

Como comentamos anteriormente, si quieres aprender Python web, estos frameworks son tus opciones en el desarrollo web con Python.

Antes de hablarte sobre las características de estos frameworks, vamos a ver en qué consisten y que nos traen.

¿Qué es Flask?

Flask es un micro framework que permite crear todo tipo de apps webs de una manera sencilla y escalable, es un framework web basado en Python y cuenta con funcionalidades típicas o que pueden ser agregadas mediante dependencias como un motor de plantilla, ORM, paquetes para manejar el usuario, etc.

Ventajas

Flask es un framework web de propósito general, así que, podemos emplearlo para desarrollar cualquier tipo de aplicación web, en base a esto, veamos sus pricipales características.

  • Simplicidad y flexibilidad: la mayor ventaja que tenemos en Flask es que al ser un micro-framework para propósitos generales como Django, permite una alta personalización y adaptabilidad a cualquier desarrollo que quieras llevar a cabo, también podemos desarrollar cualquier aplicación de a poco, a diferencia de Django, podemos ir creando la appa poco a poco y con esto, tenemos el 100% del control de lo que queramos que haga o no haga la aplicación.
  • Ideal para proyectos pequeños: Al nuevamente ser Flask un microframework es perfecto para aplicaciones web pequeñas o incluso prototipos.
  • Amplia comunidad: Existe una gran cantidad de recursos y extensiones disponibles para Flask, al ser un framework con mucho tiempo en el mercado, siempre encontrarás aunque sea algún tip del problema que quieres solucionar.

¿Qué es FastAPI?

FastAPI es un framework más moderno diseñado para crear y diseñar APIs con Python web y es que no hay framework más rápido para hacer APIs y poder consumirlas con otras tecnologías, por supuesto, también podemos convertir en un framework más de propósito general como Flask en caso de que sea necesario.

Aunque, en definitiva, es un framework diseñado para crear APIs, así que, aquí puedes ir viendo la diferencia entre ambos frameworks.

Ventajas

  • FastAPI es un framework muy rápido debido a su naturaleza asíncrona; fácilmente, podemos definir funciones de este tipo.
  • Documentación automática: Genera automáticamente documentación para tus APIs, por lo tanto, podemos ver y probar los recursos que creemos directamente del navegador.
  • Validación de datos: Ofrece validación automática de tipos y datos en la API, nuevamente, es un framework creado para crear APIs principalmente.

Escenarios Ideales para Aprender Flask/FastAPI

En este blog y mi canal de YouTube encontrarás muchos recursos gratuitos para aprender sobre Flask y por supuesto FastAPI hasta publicaciones completas, también cuento con cursos en Flask/FastAPI y también con el libro más completo; por supuesto, en Internet encontrarás muchísimo material sobre ambas tecnologías.

 

¿Cuánto tiempo se tarda en aprender Flask y FastAPI?

Ambos frameworks son más sencillos de iniciar que el todo poderoso Django, son microframeworks, lo que significa, que podemos crear nuestra aplicación con pocas líneas de código, y cuando digo pocas son pocas:

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
   return 'Hello, World!'

El código anterior representa a una aplicación en Flask, si, una aplicación COMPLETA con todas las letras, la cual, se ejecuta en un solo archivo, a diferencia de Django que tenemos un montón de archivos y carpetas que representan a nuestro proyecto, y es que ambos frameworks aunque sean de tipo web, siguen filosofías distintas como comentamos antes, Flask y FastAPI son microframework y Django uno con todo incluido.

Por lo tanto, al poder ir agregando código y automáticamente poder ver en tiempo real lo que representa ese código, si es una nueva ruta, si es una página HTML, si arruinastes la aplicación… Así que, si quieres iniciar en el desarrollo web con Python, estos son tus frameworks recomendados.

Cual elegir Flask o FastAPI

Ambos framewoks son excelentes, a partir de ahora, voy a dar mi opinión personal sobre cuál debería ser tu primer framework Python.

Flask y Django viene siendo lo que es CodeIgniter para Laravel

A lo que me refiero con la frase anterior, es que, Flask está pensado para aplicaciones más específicas o sencillas, no es que no puedas hacer aplicaciones completas, complejas y grandes, claro que puedes, lo mismo aplica para frameworks como CodeIgniter, pero, te tocaría implementar funcionalidades que probablemente se encuentran más desarrolladas en frameworks más grandes como lo son Laravel y Django.

Por ejemplo, si quieres crear una API Rest con protección por tokens y sesión, lo puedes hacer en Flask , pero, en Django es mucho más fácil y rápido al emplear DRF; entonces, el propósito de ser desarrollador es saber cuando tienes que emplear una tecnología y cuando tienes que emplear otra tecnología, viendo sus ventajas, desventajas y adecuandolo lo mejor posible al proyecto que quieres llevar a cabo.

Siguiendo hablando de las Rest Apis, Si tu proyecto qué quieres crear es una RestApi, entonces, FastAPI es para tí, que como indica su nombre, está pensado para crear APIs, al proveer una documentación automática por cada recurso que crees, lo convierten en un gran candidato para tal fin.

Entonces, cuál elegir

Habiendo comentado lo anterior, al ser de propósito más general querer crear una aplicación web tipo blog, foros… en lugar de una API Rest y cuando estamos aprendiendo usualmente primero comenzamos a crear aplicaciones webs sencillas empleando templates en HTML, mi elección sería que primero aprender Flask, aparte de que FastAPI maneja algunas implementaciones que pueden ser un poco abstractas como la documentación automática Pydentic para las validaciones de los modelos, inyección de dependencias… que ojo todo esto es excelente, pero para nuevos desarrolladores webs en Python y sobre todo si vienes de PHP o Node, pienso que puede ser un poco difícil de digerir, si lo comparamos con Flask, el cual tiene una estructura mucho más similar a otros tipos de frameworks webs basados en PHP o JavaScript.

FastAPI aunque sea un microframework pienso que está a mitad de camino entre Flask y Django en lo que se refiere a la complejidad al programar en el framework

FastAPI incorpora algunas características de alto nivel como la inyección de dependencias, también es un framework más abstracto pensado tal cual indica su nombre, para crear APIs y Flask es más de propósito general.

¿Qué debo conocer antes de trabajar con Flask o FastAPI?

Ya este punto te lo respondí un poco antes en esta y otras publicaciones, pero, si Flask es tu primer framework web, ya sea que vienes de otros o es el primero con el cual trabajas, si, te lo recomiendo enormemente, es un framework evolutivo, en el cual cada cambio que hacemos lo puedes ver reflejado por pantalla lo cual es excelente para aprender a programar.

También, al igual que en Django, a la final, estamos usando Python con TODAS las ventajas que esto nos da familiarizarse con el lenguaje para que luego puedes abordar temas que son propios del framework y con esto, no sentirte perdido, revisa la documentación oficial y ve si te vez programando en esta maravilla.

Por supuesto, debes de conocer la trilogía del mal de HTML, CSS y JavaScript, sobre todo las dos primeras, ya que de poco sirve si hacemos la mejor app administrativa pero nadie la usa porqué luce horrenda.

¿Por qué aprender Flask/FastAPI? o ¿Vale la pena aprender Flask/FastAPI?, qué habilidades debo de tener

Flask es un framework multipropósito y tambien FastAPI (aunque como comentamos más de propósito específico para crear APIs) si quieres aprender Python web, siempre considero que es necesario aprender al menos dos frameworks webs para tener una visión más amplia sobre cómo funcionan y poder tener una mente crítica sobre cuales son las ventajas y desventajas de cada framework y seleccionar el mejor según la situación, aunque esto suene a mucho trabajo, al a final, los frameworks webs tienen más similitudes que diferencias en lo que se refiere su organización, que es lo más importante para entenderlos.

Y si, un rotundo sí que vale la pena aprender Flask o FastAPI, primeramente, considero mejor Flask al ser de propósito general y FastAPI pudieras tomarlo para aprenderlo después de Flask/Django.

Flask es un framework con muchas características que permiten al igual que Django, crear cualquier aplicación y podrás dominarlo en pocas semanas.

Quieres un proyecto funcional en unas pocas semanas, USA DJANGO, al tener tantas funcionalidades, podrás crear tu proyecto de ensueño en poco tiempo.

Si estás aprendiendo a crear aplicaciones webs con Python, entonces Flask será más fácil de manejar que Django.

Lo malo de Flask/FastAPI

Como todo en la vida, hay cositas que se pueden complicar que aunque no es un problema del framework en sí, si lo es del paradigma que emplea que es el de un microframework y es que Flask es un framework muy moldeable, es decir que podemos hacer lo mismo de varias formas lo cual es bueno y malo al mismo tiempo, bueno porqué no nos vemos limitados pero malo al momento de empezar ya que rápidamente podemos seguir malas prácticas en el desarrollo con Flask lo cual no es bueno al momento de empezar; de una vez aprovecho y te comento de que cuento con mucho material tanto gratuito como de pago para desarrollar en Flask en el cual, te enseño Flask desde cero, desde sus bases hasta tener un buen nivel en el mismo.

Este comentario anterior, también lo puedes aplicar a FastAPI que en resumen, sería el segundo framework que te recomendaría aprender o ir directamente a Django.

Otro aspecto negatívo de Flask, es que, en comparación a Django, se siente un poco abandonado por los desarrolladores, no hacen actualizaciones constantes y sobre todo muchas de las extensiones se encuentran desactualizadas-

Un aspecto negativo de FastAPI si lo comparamos con Flask, es que FastAPI aunque puedes crear más que simples APIs por ejemplo, una API Rest, para configurar un app tradicional con un manejador de templates como Jinja y SQLAlchemy, requiere de mayores configuraciones si lo comparamos con Flask que por ejemplo, al instalar Flask ya viene con el motor de plantillas de Jinja listo para emplear.

Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz En Udemy

Acepto recibir anuncios de interes sobre este Blog.