Módulo: Despliegue y aplicaciones multipágina
Este módulo forma parte del curso de Streamlit. .
El último módulo del curso cubre todo lo necesario para llevar las aplicaciones Streamlit a producción: arquitectura multipágina con la API moderna st.navigation, autenticación de usuarios con st.login, despliegue gratuito en Streamlit Community Cloud y containerización con Docker.
Aplicaciones multipágina con st.navigation
Desde Streamlit 1.36, la forma recomendada de crear apps multipágina es con st.navigation y st.Page:
# app.py (punto de entrada)
import streamlit as st
inicio = st.Page("pages/inicio.py", title="Inicio", icon="🏠")
analisis = st.Page("pages/analisis.py", title="Análisis", icon="📊")
configuracion = st.Page("pages/configuracion.py", title="Configuración", icon="⚙️")
pg = st.navigation([inicio, analisis, configuracion])
st.set_page_config(page_title="Mi Dashboard", page_icon="📈")
pg.run()
Para navegar programáticamente entre páginas:
st.switch_page("pages/analisis.py")
Autenticación con st.login
import streamlit as st
st.login() # Muestra botón de login con el proveedor configurado
if st.experimental_user.is_logged_in:
st.write(f"Bienvenido, {st.experimental_user.name}!")
st.logout()
else:
st.stop()
Streamlit Community Cloud
El despliegue en Streamlit Community Cloud es gratuito para repositorios públicos de GitHub:
- Subir el proyecto a GitHub con
app.pyyrequirements.txten la raíz. - Acceder a
share.streamlit.ioe iniciar sesión con GitHub. - Seleccionar el repositorio, la rama y el archivo principal.
- Añadir secretos en la sección "Secrets" del panel de la app.
- Hacer clic en "Deploy" y esperar unos segundos.
# requirements.txt
streamlit>=1.42.0
pandas>=2.2.0
plotly>=5.22.0
scikit-learn>=1.5.0
Docker
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8501
HEALTHCHECK CMD curl --fail http://localhost:8501/_stcore/health
ENTRYPOINT ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0"]
docker build -t mi-app-streamlit .
docker run -p 8501:8501 mi-app-streamlit
Componentes personalizados
Los componentes personalizados permiten integrar cualquier librería JavaScript en Streamlit mediante streamlit-component-lib. También existen componentes de la comunidad disponibles en PyPI (streamlit-aggrid, streamlit-folium, etc.) que se instalan como cualquier paquete Python.
Otros módulos de este curso
Despliegue y aplicaciones multipágina
Todos los módulos del curso
Navega entre los módulos de Streamlit
Despliegue y aplicaciones multipágina
Estás aquíExplora más sobre Streamlit
Descubre más recursos de Streamlit
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.