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)
```
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:
Organize os arquivos do seu aplicativo:
Salve o código do seu aplicativo (por exemplo, em um arquivo chamadoapp.py
) em uma pasta dedicada (por exemplo,myapp
).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.Visualize o aplicativo exportado localmente:
Inicie um servidor estático local (usando uma ferramenta comohttp.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:
Criar um repositório:
Inicialize um repositório GitHub e adicione a pastasite/
a ele.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 pastadocs/
).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.Acessar seu aplicativo:
Depois que o GitHub Pages estiver habilitado, seu aplicativo estará acessível por meio de uma URL comohttps://yourusername.github.io/your-repo/
.
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
- Introdução ao Shinylive para Python
Obtenha uma visão geral do Shinylive para Python, seus componentes e seus benefícios. - Instalando e configurando Shinylive para Python
Aprenda a instalar o pacote Python shinylive e configurar o gerenciamento de ativos. - Incorporando aplicativos Python Shinylive em documentos Quarto
Descubra como incorporar aplicativos Shinylive diretamente em seus documentos Quarto. - Personalização avançada e solução de problemas para Shinylive (Python)
Explore técnicas avançadas para personalizar e solucionar problemas em seus aplicativos Shinylive.
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
Aqui estão mais artigos da mesma categoria para ajudá-lo a se aprofundar no tópico.
Reuso
Citação
@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}
}