Creación de una aplicación Python básica Shinylive

Compile y exporte su primera aplicación Shiny sin servidor con Python

Este tutorial muestra cómo crear una aplicación Shiny para Python sencilla y exportarla como una aplicación Shinylive. Aprende a convertir tu aplicación Python interactiva en una aplicación web estática y sin servidor utilizando el paquete Python shinylive.

Herramientas
Autor/a
Afiliación
Fecha de publicación

20 de marzo de 2025

Palabras clave

básico Shinylive app Python, Shiny Python sin servidor, exportar la aplicación shiny Python

Introducción

Shinylive para Python te permite ejecutar aplicaciones Shiny interactivas escritas en Python directamente en tu navegador web, sin necesidad de un servidor dedicado. En este tutorial, crearás una sencilla aplicación Shiny para Python que muestra un histograma interactivo. A continuación, exportarás la aplicación como una aplicación Shinylive, convirtiendo tu código dinámico en un conjunto de archivos estáticos que se pueden implementar en cualquier lugar.



1. Crear la aplicación Shiny

Crearemos una aplicación Shiny básica para Python utilizando el nuevo paquete shiny para Python. Este ejemplo utiliza un control deslizante para controlar el número de contenedores en un histograma de datos aleatorios.

Fuente del código

```{python}
from shiny import App, ui, render
import numpy as np
import matplotlib.pyplot as plt

# Definir la interfaz de usuario
app_ui = ui.page_fluid(
    ui.input_slider("bins", "Number of bins:", 5, 30, 10, step=1),
    ui.output_plot("histPlot")
)

# Definir la lógica del servidor
def server(input, output, session):
    @output
    @render.plot
    def histPlot():
        # Generar datos aleatorios
        x = np.random.normal(0, 1, 1000)
        # Crea bordes bin basados en el valor del control deslizante
        bins = np.linspace(x.min(), x.max(), input.bins() + 1)
        plt.figure(figsize=(8, 4))
        plt.hist(x, bins=bins, color="skyblue", edgecolor="white")
        plt.title("Interactive Histogram of Random Data")
        plt.xlabel("Value")
        plt.ylabel("Frequency")
        plt.show()

# Crear la aplicación Shiny
app = App(app_ui, server)
```
Nota

Ejecute el bloque de código para probar localmente su aplicación interactiva Shiny para Python. Debería ver un control deslizante y un histograma que se actualiza en función del valor del control deslizante.

Resultados

#| '!! shinylive warning !!': |
#|   shinylive does not work in self-contained HTML documents.
#|   Please set `embed-resources: false` in your metadata.
#| standalone: true
#| viewerHeight: 650
from shiny import App, ui, render
import numpy as np
import matplotlib.pyplot as plt

# Definir la interfaz de usuario
app_ui = ui.page_fluid(
    ui.input_slider("bins", "Number of bins:", 5, 30, 10, step=1),
    ui.output_plot("histPlot")
)

# Definir la lógica del servidor
def server(input, output, session):
    @output
    @render.plot
    def histPlot():
        # Generar datos aleatorios
        x = np.random.normal(0, 1, 1000)
        # Crea bordes bin basados en el valor del control deslizante
        bins = np.linspace(x.min(), x.max(), input.bins() + 1)
        plt.figure(figsize=(8, 4))
        plt.hist(x, bins=bins, color="skyblue", edgecolor="white")
        plt.title("Interactive Histogram of Random Data")
        plt.xlabel("Value")
        plt.ylabel("Frequency")
        plt.show()

# Crear la aplicación Shiny
app = App(app_ui, server)

2. Exportar tu aplicación con Shinylive

Una vez que su aplicación Shiny funcione localmente, puede exportarla como una aplicación Shinylive. Esto convierte tu código Python en un conjunto de archivos estáticos (HTML, JavaScript, CSS y WASM) que se ejecutan íntegramente en el navegador.

Pasos para exportar:

  1. Organizar los archivos de la aplicación:
    Guarde el código de su aplicación (por ejemplo, en un archivo llamado app.py) dentro de una carpeta dedicada (por ejemplo, myapp).

  2. Exportar la aplicación:
    Utilice el paquete Python shinylive desde la línea de comandos para exportar su aplicación:

    shinylive export myapp site

    Este comando crea una nueva carpeta llamada site/ que contiene todos los archivos estáticos necesarios para ejecutar tu aplicación.

  3. Vista previa de la aplicación exportada localmente:
    Inicie un servidor estático local (utilizando una herramienta como http.server en Python o cualquier servidor de archivos estáticos) para obtener una vista previa de la aplicación exportada. Por ejemplo:

      python3 -m http.server --directory site --bind localhost 8008

    Abre tu navegador en la URL proporcionada para ver tu aplicación sin servidor en acción.

3. Implementación en servicios de alojamiento estático

Después de verificar que tu aplicación exportada funciona localmente, implementa el contenido de la carpeta site/ en un servicio de alojamiento estático.

Estos son los pasos generales para implementar su aplicación Shinylive en GitHub Pages:

  1. Crear un repositorio:
    Inicializa un repositorio GitHub y añade la carpeta site/.

  2. Configurar GitHub Pages:
    En la configuración de tu repositorio, habilita GitHub Pages y selecciona la rama/carpeta que contiene tu aplicación exportada (por ejemplo, la raíz del repositorio o una carpeta docs/).

  3. Enviar y publicar:
    Confirmar y enviar los cambios. Deberías poder acceder a tu aplicación a través de la URL de GitHub Pages proporcionada en la configuración del repositorio.

  4. Acceder a la aplicación:
    Una vez habilitado GitHub Pages, podrás acceder a tu aplicación a través de una URL como https://yourusername.github.io/your-repo/.

Nota

Otras opciones de alojamiento estático, como Netlify, siguen pasos similares: simplemente suba el contenido de la carpeta site/ y configure los ajustes de implementación.

4. Consejos y mejores prácticas

  • Gestión de recursos:
    Comprueba las versiones de los activos utilizando los comandos shinylive adecuados. Si es necesario, actualiza los activos para garantizar la compatibilidad.

  • Organizar varias aplicaciones:
    Si exportas varias aplicaciones, utiliza subdirectorios para mantener cada aplicación separada y conservar la coherencia de los recursos compartidos.

  • Pruebas locales:
    Previsualiza siempre tu aplicación exportada localmente antes de implementarla en un servicio de alojamiento estático como GitHub Pages o Netlify.

  • Legibilidad del código:
    Escriba código modular y bien documentado para facilitar futuras personalizaciones.

Lecturas adicionales

Conclusión

Ahora ha creado una aplicación Shiny interactiva básica para Python y ha aprendido a exportarla como una aplicación Shinylive. Este enfoque sin servidor te permite implementar tus aplicaciones Python interactivas como sitios web estáticos que se ejecutan íntegramente en el navegador. Experimente con más personalizaciones y explore los recursos adicionales para profundizar en su comprensión de Shinylive para Python.

Referencias

Explorar más artículos

Nota

Aquí hay más artículos de la misma categoría para ayudarte a profundizar en el tema.

placeholder

placeholder
No hay resultados
Volver arriba

Reutilización

Cómo citar

BibTeX
@online{kassambara2025,
  author = {Kassambara, Alboukadel},
  title = {Creación de una aplicación Python básica Shinylive},
  date = {2025-03-20},
  url = {https://www.datanovia.com/es/learn/interactive/python/shinylive/basic-app.html},
  langid = {es}
}
Por favor, cita este trabajo como:
Kassambara, Alboukadel. 2025. “Creación de una aplicación Python básica Shinylive.” March 20, 2025. https://www.datanovia.com/es/learn/interactive/python/shinylive/basic-app.html.