¿Qué es Flask? Guía completa del framework web Python
Introducción a Flask
Flask es un framework web minimalista en Python, diseñado para crear aplicaciones web y REST APIs. Ofrece una estructura simple y flexible que permite desarrollar tanto prototipos como aplicaciones web completas de forma rápida. Flask está basado en el conjunto de herramientas WSGI Werkzeug y utiliza el sistema de plantillas Jinja2.
Creado por Armin Ronacher en 2010, Flask ganó popularidad gracias a su filosofía "haz una cosa y hazla bien". A diferencia de frameworks más pesados, Flask proporciona solo lo mínimo necesario, permitiendo a los desarrolladores elegir libremente los componentes para sus proyectos.
Características principales de Flask
Enfoque minimalista y extensible
Flask sigue el principio de microframework, ofreciendo funcionalidades básicas y permitiendo expandirlas mediante plugins y extensiones.
Enrutamiento integrado y manejo de solicitudes
El framework proporciona un sistema de enrutamiento intuitivo con soporte para varios métodos HTTP y parámetros en la URL.
Soporte de plantillas Jinja2
La integración con el potente sistema de plantillas Jinja2 facilita el trabajo con plantillas HTML y contenido dinámico.
Capacidad para crear REST APIs
Flask es ideal para construir APIs RESTful gracias a su soporte para respuestas JSON y manejo flexible de métodos HTTP.
Soporte de extensiones
Un rico ecosistema de extensiones permite añadir funcionalidades para trabajar con bases de datos, autenticación, formularios y mucho más.
Compatibilidad con Python 3.7+
Flask es compatible con las versiones modernas de Python y sigue las mejores prácticas de desarrollo.
Instalación y configuración
Instalación mediante pip
pip install flask
Verificar la instalación
python -m flask --version
Crear el archivo app.py y ejecutar
export FLASK_APP=app.py
flask run
En Windows:
set FLASK_APP=app.py
flask run
Creación de la primera aplicación
Ejemplo simple de app.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def home():
return "¡Bienvenido a Flask!"
if __name__ == '__main__':
app.run(debug=True)
Ejecutar la aplicación
flask run
La aplicación estará disponible en http://localhost:5000/
Manejo de rutas y URLs
Enrutamiento básico
@app.route("/usuario/<nombre_usuario>")
def mostrar_perfil_usuario(nombre_usuario):
return f"Perfil de usuario: {nombre_usuario}"
Rutas con tipado
@app.route("/post/<int:id_post>")
def mostrar_post(id_post):
return f"Post Nº{id_post}"
@app.route("/ruta/<path:subruta>")
def mostrar_subruta(subruta):
return f"Subruta: {subruta}"
Tipos de parámetros soportados
string- cadenas de texto (por defecto)int- números enterosfloat- números de punto flotantepath- cadenas con caracteres "/"uuid- cadenas UUID
Trabajo con métodos HTTP
Manejo de diferentes métodos
@app.route("/datos", methods=["GET", "POST", "PUT", "DELETE"])
def manejar_datos():
if request.method == "POST":
return "Datos creados"
elif request.method == "PUT":
return "Datos actualizados"
elif request.method == "DELETE":
return "Datos eliminados"
return "Obteniendo datos"
Trabajo con plantillas
También en la biblioteca
Trabajo con fechas en Kotlin: revisión de bibliotecas y herramientas
Spring WebFlux Java: guía completa con ejemplos prácticos
Socket.io para JavaScript (Node.js): guía completa con ejemplos