Criando um aplicativo Python básico Shinylive

Crie e exporte seu primeiro aplicativo Shiny sem servidor com Python

Este tutorial demonstra como criar um aplicativo Shiny para Python simples e exportá-lo como um aplicativo Shinylive. Aprenda a converter seu aplicativo Python interativo em um aplicativo web estático e sem servidor usando o pacote Python shinylive.

Ferramentas
Autor
Afiliação
Data de Publicação

20 de março de 2025

Palavras-chave

Aplicativo Python básico Shinylive, Shiny Python sem servidor, Exportar aplicativo Shiny Python

Introdução

O Shinylive para Python permite executar aplicativos Shiny interativos escritos em Python diretamente no seu navegador da web, sem a necessidade de um servidor dedicado. Neste tutorial, você criará um aplicativo Shiny para Python simples que exibe um histograma interativo. Em seguida, você exportará o aplicativo como um aplicativo Shinylive, transformando seu código dinâmico em um conjunto de arquivos estáticos que podem ser implantados em qualquer lugar.



1. Criando seu aplicativo Shiny

Criaremos um aplicativo Shiny básico para Python usando o novo pacote shiny para Python. Este exemplo usa um controle deslizante para controlar o número de compartimentos em um histograma de dados aleatórios.

Código-fonte

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

# Defina a interface do usuário
app_ui = ui.page_fluid(
    ui.input_slider("bins", "Number of bins:", 5, 30, 10, step=1),
    ui.output_plot("histPlot")
)

# Defina a lógica do servidor
def server(input, output, session):
    @output
    @render.plot
    def histPlot():
        # Gerar dados aleatórios
        x = np.random.normal(0, 1, 1000)
        # Crie bordas bin com base no valor do controle 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()

# Criar o aplicativo Shiny
app = App(app_ui, server)
```
Nota

Execute o bloco de código para testar seu aplicativo Shiny para Python interativo localmente. Você deverá ver um controle deslizante e um histograma que se atualiza com base no valor do controle 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

# Defina a interface do usuário
app_ui = ui.page_fluid(
    ui.input_slider("bins", "Number of bins:", 5, 30, 10, step=1),
    ui.output_plot("histPlot")
)

# Defina a lógica do servidor
def server(input, output, session):
    @output
    @render.plot
    def histPlot():
        # Gerar dados aleatórios
        x = np.random.normal(0, 1, 1000)
        # Crie bordas bin com base no valor do controle 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()

# Criar o aplicativo Shiny
app = App(app_ui, server)

2. Exportando seu aplicativo com Shinylive

Depois que seu aplicativo Shiny funcionar localmente, você poderá exportá-lo como um aplicativo Shinylive. Isso converte seu código Python em um conjunto de arquivos estáticos (HTML, JavaScript, CSS e WASM) que são executados inteiramente no navegador.

Etapas para exportar:

  1. Organize os arquivos do seu aplicativo:
    Salve o código do seu aplicativo (por exemplo, em um arquivo chamado app.py) em uma pasta dedicada (por exemplo, myapp).

  2. Exportar o aplicativo:
    Use o pacote Python shinylive na linha de comando para exportar seu aplicativo:

    shinylive export myapp site

    Este comando cria uma nova pasta chamada site/ que contém todos os arquivos estáticos necessários para executar seu aplicativo.

  3. Visualize o aplicativo exportado localmente:
    Inicie um servidor estático local (usando uma ferramenta como http.server em Python ou qualquer servidor de arquivos estáticos) para visualizar seu aplicativo exportado. Por exemplo:

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

    Abra seu navegador na URL fornecida para ver seu aplicativo sem servidor em ação.

3. Implantação em serviços de hospedagem estática

Depois de verificar se o aplicativo exportado funciona localmente, implante o conteúdo da pasta site/ em um serviço de hospedagem estática.

Aqui estão as etapas gerais para implantar seu aplicativo Shinylive no GitHub Pages:

  1. Criar um repositório:
    Inicialize um repositório GitHub e adicione a pasta site/ a ele.

  2. Configurar páginas do GitHub:
    Nas configurações do seu repositório, habilite o GitHub Pages e selecione o branch/pasta que contém seu aplicativo exportado (por exemplo, a raiz do repositório ou uma pasta docs/).

  3. Enviar e publicar:
    Confirmar e enviar suas alterações. Seu aplicativo deve estar acessível através da URL do GitHub Pages fornecida nas configurações do repositório.

  4. Acessar seu aplicativo:
    Depois que o GitHub Pages estiver habilitado, seu aplicativo estará acessível por meio de uma URL como https://yourusername.github.io/your-repo/.

Nota

Outras opções de hospedagem estática, como Netlify, seguem etapas semelhantes: basta fazer upload do conteúdo da pasta site/ e configurar as definições de implantação.

4. Dicas e melhores práticas

  • Gerenciamento de ativos:
    Verifique as versões dos ativos usando os comandos shinylive apropriados. Se necessário, atualize os recursos para garantir a compatibilidade.

  • Organizando vários aplicativos:
    Se estiver exportando vários aplicativos, use subdiretórios para manter cada aplicativo separado e manter a consistência dos recursos compartilhados.

  • Teste local:
    Sempre visualize seu aplicativo exportado localmente antes de implantá-lo em um serviço de hospedagem estática como GitHub Pages ou Netlify.

  • Legibilidade do código:
    Escreva código modular e bem documentado para facilitar personalizações futuras.

Leitura adicional

Conclusão

Agora você criou um aplicativo Shiny interativo básico para Python e aprendeu a exportá-lo como um aplicativo Shinylive. Essa abordagem sem servidor permite que você implante seus aplicativos Python interativos como sites estáticos que são executados inteiramente no navegador. Experimente outras personalizações e explore os recursos adicionais para aprofundar sua compreensão do Shinylive para Python.

Referências

Explore mais artigos

Nota

Aqui estão mais artigos da mesma categoria para ajudá-lo a se aprofundar no tópico.

placeholder

placeholder
Nenhum item correspondente
De volta ao topo

Reuso

Citação

BibTeX
@online{kassambara2025,
  author = {Kassambara, Alboukadel},
  title = {Criando um aplicativo Python básico Shinylive},
  date = {2025-03-20},
  url = {https://www.datanovia.com/pt/learn/interactive/python/shinylive/basic-app.html},
  langid = {pt}
}
Por favor, cite este trabalho como:
Kassambara, Alboukadel. 2025. “Criando um aplicativo Python básico Shinylive.” March 20, 2025. https://www.datanovia.com/pt/learn/interactive/python/shinylive/basic-app.html.