Flask es un framework web estupendo para la creación de aplicaciones web del lado del servidor con Python; si no tienes conocimientos en el uso de frameworks web del servidor con Python, Flask es un buen candidato para inciar; al ser un microframework, lo que significa que inicialmente trae lo mínimo necesario para poder funcionar, puedes ir viendo de a poco cómo funciona el framework sin dar cabida a confusiones con archivos, estructura de directorios o módulos que no haz colocado, como sucede con otros frameworks más robustos como Django, que al crear un proyecto en Django, cuenta con muchos archivos y carpetas.
Aunque, que Flask sea un microframework no significa que debe ser empleado para proyectos pequeños, ya que, cuenta con una gran cantidad de extensiones que puedes configurar al proyecto en base a las necesidades del mismo; por ejemplo, si necesitas enviar emails, ya existen extensiones, al igual que si quieres realizar el login social, conectarse mediante ftp, módulos de usuarios, etc.
Flask es un microframework utilizado para el desarrollo de aplicaciones web en Python, aunque el término de microframework no te confunda ya que, lo puedes emplear para construir toda clase de aplicaciones web, tanto pequeñas como grandes. Algunas de sus características principales son:
Caracteristicas principales de Flask
Flask es un microframework estupendo para comenzar en el desarrollo de aplicaciones web con Python, al ser un microframework trae lo mínimio para funcionar sin preocuparnos de una estructura dificil de seguir para los primerizos como ocurre con Django, lo cual lo hace un candidato excelente para iniciar en este mundillo.
Entre las características principales de Flask tenemos:
- Perfecto para desarrollar aplicaciones básicas y que puede que quieras escalar a futuro.
- Incluye un servidor de desarrollo, por lo tanto, podemos iniciar rápidamente en el desarrollo de aplicaciones.
- Incluye un varios paquetes para realizar pruebas unitarias.
- Es compatible con los WSGI con lo cual, podemos servir nuestra aplicación fácilmente.
- Usa Python, por lo tanto tenemos todo el ecosistema Python a nuestra disposición.
- Su curva de aprendizaje es bastante baja si lo comparamos con otros framewoks.
- Es extensible mediante extensiones o plugins creados especificamente para Flask.
- Lo mínimo para funcionar, Flask es un framework con una curva de aprendizaje bastante baja, al ser un microframework y traer lo mínimo para poder funcionar resulta bastante fácil de entender, crear nuestro primer hola mundo e ir escalando poco a poco.
- Antigüedad, Flask es un framework con mucho tiempo en el mercado, constantemente va recibiendo actualizaciones para emplear las últimas versiones de Python y dependencias en general e incorporar nuevas características.
- Extensiones, Flask ofrece una amplia variedad de extensiones que permiten agregar funcionalidades adicionales, como validación de formularios, integración con bases de datos, motor de plantillas, entre otros.
- Soporte de la comunidad y buena documentación, al tener una duda sobre como implementar alguna funcionalidad, con una simple búsqueda, seguramente podrás encontrar más información sobre cómo implementar dicha funcionalidad, al tener una comunidad activa y una muy buena documentación.
Estas son solamente algunas de las características principales de Flask, pero, exiten muchas otras.
Al instalar Flask, se instalan varias dependencias, entre las principales tenemos:
- Flask, el microframework conocido como Flask.
- Jinja2, un excelente motor de plantillas para crear páginas HTML dinámicas con ayuda de Python.
- Werkzeug, Servidor de tipo WSGI (Web Server Gateway Interface) empleado para presentar la aplicación y poder consumirla mediante el navegador web o similar; es utilizado también para gestionar el enrutamiento, manejar las solicitudes y respuestas HTTP entre otros.
Guía para dar los primeros pasos con Flask 3
Comencemos preparando el entorno necesario para crear nuestras aplicaciones en Flask que consiste en crear el ambiente virtual mediante un venv:
Ya de una, vamos a crear un ejemplo mínimo en Flask, como microframework que es, podemos crear un Hola Mundo con pocas líneas de código y es esta característica lo que hace de Flask un gran candidato para empezar en los framwroks webs con Python:
El siguiente paso, es conocer como manejar los archivos de configuraciones para manejar distintos ambientes al igual que los parámetros de conexión a la base de datos, entre otros:
El siguiente paso es activar el modo debug para poder ver los errores que ocurren al momento de desarrollar la aplicación:
El uso de Flask Login agrega una serie de funcionalidades que podemos usar para crear un sistema de autenticación:
Crear ApiRestful es una estructura muy común que necesitamos para comunicar sistemas, en Flask, tambien podemos crearlos:
Inclusive en Flask podemos crear socket, lo que significa que podemos crear comunicaciones full fuplex o del cliente al servidor y diferencia:
Es importante configurar los CORS en Flask para cuando quieras que pueda ser consumida mediante una API de un tercero:
Curso y Libro para dominar Flask 3
Esta guía tiene la finalidad de dar los primeros pasos con Flask empleando Python; con esto, vamos a plantear dos cosas:
- No es un libro que tenga por objetivo conocer al 100% Flask, o de cero a experto, ya que, sería un objetivo demasiado grande para el alcance de esta guía, si no, conocer que nos ofrece y crear las primeras aplicaciones web con Flask, conocer sus extensiones, crear una API, usar Jinja2 entre otros.
- Se da por hecho de que el lector tiene conocimientos al menos básicos en el desarrollo de Python.
Este libro tiene un enfoque práctico, conociendo los aspectos claves de la tecnología y pasando a la práctica, implementando de a poco pequeñas características de una aplicación que tiene alcance real.
Para seguir este libro necesitas tener una computadora con Windows, Linux o MacOS.
Los recursos anteriores son mayoritariamente práctico, iremos conociendo los fundamentos de Flask, conociendo sus características principales en base a una pequeña aplicación que iremos expandiendo capitulo tras capitulo.
Estos son solamente algunos posts que estan disponibles y puedes ver todos los posts en el listado completo: