Streamlit es una biblioteca de código abierto de Python que permite crear aplicaciones web interactivas de forma rápida y sencilla, sin necesidad de conocimientos de HTML, CSS ni JavaScript. Está especialmente diseñada para profesionales de ciencia de datos y machine learning que necesitan construir dashboards, prototipos y herramientas de visualización con un enfoque completamente pythónico.
La filosofía de Streamlit se basa en que el desarrollador escribe código Python puro y la biblioteca se encarga de generar la interfaz web automáticamente. Su modelo de ejecución top-down hace que el script se vuelva a ejecutar de arriba a abajo cada vez que el usuario interactúa con un widget, lo que simplifica enormemente la lógica de la aplicación. Con mecanismos como st.session_state para persistir datos entre ejecuciones y @st.cache_data para evitar recomputaciones costosas, Streamlit ofrece un equilibrio óptimo entre sencillez y potencia.
El ecosistema de Streamlit incluye una amplia colección de widgets de entrada (botones, selectores, sliders, campos de texto), elementos de visualización (gráficos nativos e integración con Matplotlib, Plotly, Altair y Seaborn), componentes de layout (columnas, pestañas, sidebar, diálogos), herramientas de gestión de datos (DataFrames interactivos, editor de datos, conexiones SQL) y funcionalidades avanzadas como interfaces de chat, autenticación y aplicaciones multipágina.
Qué incluye este itinerario
- Introducción e instalación: qué es Streamlit, instalación con pip o conda, primera aplicación, flujo de ejecución top-down, configuración del entorno y
st.set_page_config. - Elementos de texto:
st.title,st.header,st.markdown,st.code,st.latex,st.html, mensajes de estado (st.success,st.warning,st.error) yst.divider. - Widgets de entrada: botones (
st.button,st.download_button,st.link_button), campos de texto y número, selectores (st.selectbox,st.multiselect,st.radio,st.pills), sliders, toggles, carga de archivos y entrada de cámara/audio. - Visualización y gráficos: gráficos nativos (
st.line_chart,st.bar_chart,st.scatter_chart), mapas (st.map,st.pydeck_chart), integración con Matplotlib, Seaborn, Plotly, Altair y Graphviz. - Layout: columnas (
st.columns), pestañas (st.tabs), expansores (st.expander), sidebar (st.sidebar), contenedores, diálogos modales y popovers. - Datos:
st.dataframeinteractivo,st.data_editor,st.table,st.metric,st.json, conexiones a bases de datos const.connectiony gestión de secretos const.secrets. - Estado y caché:
st.session_state, callbacks, formularios const.form, fragmentos const.fragment,@st.cache_datay@st.cache_resource. - Multimedia y avanzado: imágenes, audio, vídeo, PDF, interfaces de chat (
st.chat_message,st.chat_input), indicadores de progreso, notificaciones y personalización de temas. - Despliegue: aplicaciones multipágina con
st.navigation, autenticación const.login, despliegue en Streamlit Community Cloud, Docker y componentes personalizados.
Público objetivo
- Científicos de datos y analistas que necesitan crear dashboards interactivos rápidamente.
- Ingenieros de machine learning que quieren construir prototipos y demos de modelos.
- Desarrolladores Python que buscan crear aplicaciones web sin aprender frameworks frontend.
- Estudiantes de ciencia de datos e inteligencia artificial que necesitan presentar resultados de forma visual e interactiva.