Qué es Streamlit y su ecosistema

Básico
Streamlit
Streamlit
Actualizado: 26/04/2026

Qué es Streamlit

Streamlit es una biblioteca de código abierto para Python que convierte scripts de análisis de datos en aplicaciones web interactivas con el mínimo esfuerzo. Fue creada en 2018 por Adrien Treuille, Amanda Kelly y Thiago Teixeira, tres ex-ingenieros de Google y Zoox, y adquirida por Snowflake en 2022.

La premisa de Streamlit es radical en su sencillez: escribe Python puro y obtén una aplicación web completa. No hay que aprender HTML, CSS ni JavaScript. No hay que configurar servidores, rutas ni controladores. El script se ejecuta de arriba a abajo y cada función de Streamlit añade un elemento a la interfaz:

import streamlit as st
import pandas as pd

st.title("Dashboard de ventas 2026")
st.write("Este dashboard muestra el resumen de ventas del año en curso.")

df = pd.read_csv("ventas.csv")
st.dataframe(df)
st.line_chart(df.set_index("mes")["ingresos"])

Ese código produce una aplicación web con título, texto descriptivo, tabla interactiva y gráfico de líneas. Sin HTML. Sin CSS. Sin JavaScript.

Por qué se creó Streamlit

Antes de Streamlit, los científicos de datos que querían compartir sus análisis tenían dos opciones: exportar a PDF/PowerPoint (estático, sin interactividad) o aprender un framework web completo como Flask o Django (curva de aprendizaje elevada). Streamlit nació para cerrar esa brecha.

Los creadores identificaron que los científicos de datos trabajan con un patrón muy concreto: carga de datos, transformación, visualización e interacción para explorar resultados. Streamlit está optimizado para ese patrón y por eso con tan pocas líneas de código produce resultados tan completos.

El modelo de ejecución top-down

El concepto más importante de Streamlit es su modelo de ejecución: cada vez que el usuario interactúa con cualquier widget, Streamlit vuelve a ejecutar el script completo de arriba a abajo.

import streamlit as st
import numpy as np

# Esta línea se ejecuta en cada interacción del usuario
st.title("Generador de distribuciones")

n = st.slider("Número de muestras", 100, 10000, 1000)  # Widget
media = st.number_input("Media", value=0.0)              # Widget

# Esto se recalcula cada vez que n o media cambian
datos = np.random.normal(media, 1, n)
st.line_chart(datos)
st.write(f"Media real: {datos.mean():.4f}, Desviación: {datos.std():.4f}")

Cuando el usuario mueve el slider n, Streamlit re-ejecuta todo el script. El valor de n es el nuevo valor del slider, datos se recalcula con el nuevo n, y el gráfico se actualiza.

Este modelo tiene dos implicaciones clave:

  1. Las variables se reinician en cada ejecución: si necesitas persistir datos, usa st.session_state.
  2. Las operaciones costosas se repiten en cada interacción: usa @st.cache_data para evitar recomputaciones innecesarias.

Streamlit vs Dash vs Gradio

Los tres son frameworks Python para crear interfaces web sin conocimientos de frontend, pero con enfoques distintos:

flowchart LR
    subgraph Streamlit["Streamlit: rerun top-down"]
        SA[Script Python] --> SB[Widget interaction]
        SB --> SC[Re-ejecuta todo el script]
        SC --> SD["session_state + cache"]
    end
    subgraph Dash["Dash: callbacks declarativos"]
        DA["Layout HTML/React"] --> DB[Input component]
        DB --> DC[Callback decorado]
        DC --> DD[Output component]
    end
    subgraph Gradio["Gradio: función por componente"]
        GA[Interface] --> GB["Input: imagen/texto"]
        GB --> GC[Función Python]
        GC --> GD["Output: etiqueta/texto"]
    end
    Streamlit -.-> Uso1[Dashboards de datos]
    Dash -.-> Uso2[Apps complejas de producción]
    Gradio -.-> Uso3["Demos de modelos IA/ML"]

| Aspecto | Streamlit | Dash | Gradio | |---|---|---|---| | Modelo de ejecución | Top-down (rerun completo) | Callbacks declarativos | Función Python por componente | | Curva de aprendizaje | Muy baja | Media | Baja | | Flexibilidad de layout | Media | Alta | Media | | Ideal para | Dashboards de datos, demos de ML | Apps con lógica compleja, producción | Demos de modelos de IA | | Comunidad | Muy grande | Grande | Creciente | | Personalización CSS | Limitada | Completa | Limitada |

Elige Streamlit cuando:

  • Necesitas un prototipo funcional en pocas horas.
  • Tu equipo son científicos de datos, no desarrolladores web.
  • Quieres compartir análisis exploratorios de forma interactiva.
  • El modelo de rerun completo no es un cuello de botella.

Elige Dash cuando:

  • Necesitas control total sobre el layout y los callbacks.
  • Construyes una aplicación de producción con lógica compleja.
  • Requieres integración profunda con React.js.

Elige Gradio cuando:

  • Quieres crear una demo de un modelo de IA/ML en minutos.
  • La interfaz principal es entrada -> modelo -> salida.
  • El principal canal de distribución es Hugging Face Spaces.

El ecosistema de Streamlit

Streamlit tiene un ecosistema activo de extensiones y componentes:

  • Streamlit Community Cloud: Servicio de hosting gratuito para aplicaciones públicas.
  • Streamlit Components: Más de 200 componentes de la comunidad en PyPI.
  • Streamlit Forum: Comunidad activa en discuss.streamlit.io.
  • Integración nativa: Plotly, Altair, Matplotlib, Seaborn, PyDeck, Vega-Lite.
  • Componentes populares: streamlit-aggrid, streamlit-folium, streamlit-option-menu.

La rama estable de referencia es Streamlit 1.40+, con soporte para Python 3.9 a 3.13. Las funcionalidades estables que conviene dominar incluyen st.fragment para reruns parciales (ya no experimental), st.navigation y st.Page v2 como API oficial de multipágina, st.connection para acceso unificado a datos, st.data_editor con column_config, st.write_stream para streaming de LLMs, la autenticación experimental con st.login y la integración con Snowflake (Streamlit in Snowflake, SiS).

Casos de uso habituales

Streamlit se usa ampliamente en:

  • Dashboards de negocio: KPIs, métricas y visualizaciones para equipos de gestión.
  • Demos de modelos ML: Interfaz para probar modelos con datos reales en tiempo real.
  • Herramientas de exploración de datos: Filtrar, visualizar y analizar datasets sin código.
  • Aplicaciones internas: Herramientas de automatización para equipos técnicos.
  • Aplicaciones de IA conversacional: Chatbots con LLMs usando st.chat_message.
  • Informes interactivos: Alternativa a Jupyter Notebooks para presentar resultados.

En los siguientes módulos del curso aprenderás a dominar cada uno de estos casos de uso paso a paso, desde la instalación hasta el despliegue en producción.

Alan Sastre - Autor del tutorial

Alan Sastre

Ingeniero de Software y formador, CEO en CertiDevs

Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, Streamlit es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.

Más tutoriales de Streamlit

Explora más contenido relacionado con Streamlit y continúa aprendiendo con nuestros tutoriales gratuitos.

Aprendizajes de esta lección

Comprender qué es Streamlit y por qué se creó para ciencia de datos. Conocer el modelo de ejecución top-down y sus implicaciones. Comparar Streamlit con Dash y Gradio para elegir la herramienta adecuada. Identificar los casos de uso donde Streamlit es la mejor opción. Explorar el ecosistema de componentes y la comunidad de Streamlit.