Skip to main content
Uncategorized

Aplicaciones en Streamlit: guía sobre reactividad y manejo del estado

By octubre 13, 2023septiembre 9th, 2026No Comments

El desarrollo de aplicaciones de datos interactivas ha ganado popularidad en los últimos años. Herramientas como Streamlit permiten construir interfaces visuales directamente con Python, sin necesidad de conocimientos avanzados de desarrollo web.

Sin embargo, para trabajar de forma eficiente con Streamlit es importante entender dos conceptos fundamentales de su funcionamiento:

  • Reactividad
  • Gestión del estado (statefulness)

Comprender cómo funcionan estos mecanismos permite crear aplicaciones más robustas, predecibles y fáciles de mantener.

Cómo funciona la reactividad en Streamlit

Una de las características principales de Streamlit es su modelo reactivo. Cada vez que el usuario interactúa con un componente de la interfaz, la aplicación se vuelve a ejecutar completamente desde el inicio.

Esto significa que cuando el usuario:

  • mueve un slider
  • presiona un botón
  • introduce texto
  • cambia un selector

Streamlit vuelve a ejecutar todo el script de Python.

Aunque este comportamiento simplifica el desarrollo, también puede generar confusión si no se comprende bien cómo funciona.

Ejemplo simple de reactividad

Supongamos una aplicación simple:

import streamlit as st

 

number = st.slider(«Selecciona un número», 0, 100)

 

st.write(«El número seleccionado es:», number)

Cada vez que el usuario mueve el slider, el script completo se ejecuta nuevamente.

Esto permite que la interfaz se actualice automáticamente.

El problema del estado

El modelo reactivo puede generar problemas cuando queremos recordar información entre ejecuciones.

Por ejemplo, si queremos guardar datos de una interacción previa del usuario, el valor puede perderse cuando el script se vuelve a ejecutar.

Aquí es donde entra el concepto de estado de sesión.

Qué es Session State

Streamlit introduce el objeto Session State para almacenar información entre ejecuciones del script.

Esto permite que ciertos valores persistan mientras el usuario mantiene abierta la sesión.

Ejemplo:

import streamlit as st

 

if «counter» not in st.session_state:

    st.session_state.counter = 0

 

if st.button(«Incrementar»):

    st.session_state.counter += 1

 

st.write(«Contador:», st.session_state.counter)

En este caso, el valor del contador se mantiene entre ejecuciones.

Cuándo usar Session State

El manejo del estado es útil en situaciones como:

  • Contadores o métricas temporales
  • Formularios interactivos
  • Navegación entre secciones
  • Almacenamiento temporal de datos
  • Aplicaciones con múltiples pasos

Sin Session State, estos comportamientos serían difíciles de implementar.

Formularios en Streamlit

Para manejar interacciones más complejas, Streamlit ofrece formularios.

Ejemplo:

import streamlit as st

 

with st.form(«user_form»):

    name = st.text_input(«Nombre»)

    age = st.number_input(«Edad»)

    submitted = st.form_submit_button(«Enviar»)

 

if submitted:

    st.write(f»Hola {name}, tienes {age} años.»)

Los formularios permiten agrupar interacciones y ejecutar acciones solo cuando el usuario envía la información.

Controlando ejecuciones innecesarias

En aplicaciones complejas, la reactividad puede provocar que operaciones costosas se ejecuten repetidamente.

Para evitar esto, Streamlit permite utilizar caching.

Ejemplo:

@st.cache_data

def load_data():

    # operación costosa

    return data

Esto evita recalcular resultados que no han cambiado.

Buenas prácticas al desarrollar con Streamlit

Al trabajar con aplicaciones Streamlit es recomendable seguir algunas prácticas:

  • Comprender el modelo reactivo de ejecución
  • Utilizar Session State para mantener datos entre interacciones
  • Evitar cálculos pesados en cada ejecución
  • Utilizar caché para operaciones costosas
  • Organizar el código de forma modular

Estas prácticas ayudan a mantener aplicaciones eficientes.

Streamlit en arquitecturas de datos

Streamlit se utiliza cada vez más para construir aplicaciones internas de datos.

Algunos ejemplos incluyen:

  • dashboards interactivos
  • herramientas de análisis interno
  • interfaces para modelos de machine learning
  • aplicaciones de exploración de datos

Muchas organizaciones integran estas aplicaciones con plataformas analíticas como Snowflake, permitiendo que los usuarios interactúen directamente con los datos.

Conclusión

Streamlit ofrece una forma rápida y sencilla de construir aplicaciones interactivas utilizando únicamente Python. Sin embargo, su modelo de ejecución reactiva puede generar confusión si no se comprende cómo funcionan las interacciones y la gestión del estado.

Entender conceptos como la reactividad y el uso de Session State permite desarrollar aplicaciones más robustas, optimizar el rendimiento y ofrecer mejores experiencias a los usuarios finales.

Con estas herramientas, Streamlit se convierte en una solución poderosa para crear interfaces de datos modernas dentro de las organizaciones.

    Leave a Reply