Pular para o conteúdo principal

Dominando o Shiny para Python: um guia para iniciantes na criação de aplicativos web interativos

Explore o básico do Shiny para Python para começar rápido a criar dashboards e aplicativos web interativos com essa nova biblioteca!
Atualizado 17 de set. de 2026

Explorar com IA

ChatGPTClaudePerplexity

Introdução ao Shiny e seus benefícios

Quem já trabalhou com R provavelmente ouviu falar do pacote Shiny, que permite criar aplicativos web interativos. O R Shiny foi lançado em 2012 e a demanda cresceu rapidamente quando se percebeu que esse pacote fácil de usar permitia que cientistas e analistas criassem modelos e dashboards mais interativos.

Em 2023, o Shiny para Python saiu da fase alfa, trazendo um framework reativo semelhante para a linguagem Python. O Shiny é conhecido pela simplicidade e eficiência na criação de dashboards e aplicativos web sem exigir habilidades avançadas de desenvolvimento web.

O que é o Shiny?

Shiny é um framework open source para criação de aplicativos web em R e, com os avanços recentes, também em Python. Ele permite que profissionais de dados transformem suas análises em aplicativos web interativos. O núcleo do Shiny gira em torno da programação reativa, em que mudanças nos inputs (como sliders ou botões) disparam atualizações automáticas nos outputs (como gráficos ou tabelas).

Há muitos benefícios no uso do framework Shiny para criar aplicativos web. O Shiny aproveita a programação reativa, permitindo construir apps que respondem dinamicamente às entradas do usuário e oferecem uma experiência mais envolvente e personalizada. Ele conta com uma biblioteca amigável e documentação completa, permitindo que quem tem conhecimentos básicos de programação crie aplicativos interativos e visualmente atraentes. Para quem é fã de Python, o Shiny agora faz a ponte entre o rico ecossistema de ciência de dados do Python e os recursos de desenvolvimento web do Shiny.

Aqui vão alguns exemplos em que o framework Shiny é muito útil:

  • Dashboards interativos: o Shiny é perfeito para construir dashboards que permitem explorar e visualizar dados em tempo real. Você pode usar estas dicas para criar um dashboard impecável.
  • Exploração de dados: analistas podem usar o Shiny para criar apps que possibilitam explorar conjuntos de dados de forma interativa, ajustando parâmetros e visualizações na hora.
  • Sistemas de suporte à decisão: é possível desenvolver sistemas que facilitem decisões orientadas por dados ao oferecer insights dinâmicos.
  • Ferramentas educacionais: o Shiny é valioso no contexto educacional, permitindo a criação de materiais didáticos e demonstrações interativas.

Observação: é importante entender que Shiny para R e Shiny para Python são diferentes. Embora compartilhem conceitos, a sintaxe e a terminologia não são intercambiáveis. Se você já sabe usar o Shiny para R, terá vantagem para aprender o Shiny para Python, mas ainda assim precisará entender as diferenças para acomodar o Python.

Shiny comparado a outros frameworks de aplicativos web

Ao pensar em desenvolvimento de aplicativos web para ciência de dados, vale entender como o Shiny se posiciona em relação a outros frameworks.

O Shiny oferece uma combinação única de simplicidade e versatilidade. No entanto, a versão em Python é relativamente nova em comparação com outros frameworks. O Shiny foi projetado para tornar o desenvolvimento de aplicativos web acessível a quem já tem noções de código em Python.

Além da facilidade, ele foi pensado para escalar sem atrito, usando cache e reatividade seletiva para manter o framework reativo eficiente. Isso dá vantagem em relação a alguns outros frameworks de web design. Sua sintaxe declarativa e o modelo de programação reativa também o tornam acessível a analistas de dados, permitindo criar aplicativos interativos sem exigir grande expertise em desenvolvimento web.

Já outros frameworks, como Dash e Streamlit, trazem pontos fortes diferentes. O Dash usa sintaxe "pythônica" e prioriza o desenvolvimento rápido. O Streamlit brilha no protótipo ágil com renderização automática, mas reexecuta todo o programa quando um input muda, gerando ineficiência conforme o app cresce. Flask e Django são frameworks web de uso geral que oferecem flexibilidade e controle, mas costumam exigir mais conhecimento de desenvolvimento web. Se tiver interesse, confira o tutorial de Django da DataCamp.

Além das plataformas de desenvolvimento baseadas em código, analistas de dados também usam Tableau e Power BI para finalidades semelhantes de criação de dashboards. São plataformas de visualização de dados com ferramentas poderosas, mas com custos de licenciamento. Esses programas têm recursos de análise mais limitados que o código puro e exigem que a maior parte da modelagem e das análises complexas sejam feitas em outro lugar. Você pode saber mais sobre Power BI na DataCamp.

É essencial considerar requisitos do projeto, preferências de linguagem e a necessidade de recursos específicos ao escolher o framework mais adequado para uma aplicação de ciência de dados. Embora outros frameworks tenham seus méritos, a mistura de simplicidade e flexibilidade do Shiny, somada à integração com Python, faz dele uma opção bastante atraente para quem quer elevar seus projetos de dados.

Framework

Principais recursos

Suporte a linguagens

Curva de aprendizado

Uso recomendado

Shiny

Simplicidade e versatilidade

R, Python

Baixa

Aplicativos e visualizações interativas

Dash

Sintaxe "pythônica"

Python

Média

Desenvolvimento rápido de apps web leves

Streamlit

Protótipos rápidos com renderização automática

Python

Baixa

Protótipos ágeis para apps de dados

Flask

Framework web de uso geral

Python

Média a alta

Apps web completos

Django

Framework web Python de alto nível

Python

Média a alta

Aplicativos e serviços web escaláveis

Tableau/Power BI

Plataformas de visualização de dados

Não aplicável

Baixa

Visualizações de Business Intelligence

Configurando o ambiente de desenvolvimento

Uma das grandes vantagens do Shiny para Python é que existe um editor web onde você pode criar seu app sem baixar ou instalar nada. Esse editor web vem com vários exemplos de apps e funcionalidades para você começar e testar sua nova aplicação Shiny.

Mas chegará um momento no desenvolvimento em que você provavelmente vai querer rodar o Shiny no seu dispositivo local. Esta seção orienta a instalação do Python, do Shiny e de suas dependências, além das configurações necessárias para deixar seu ambiente local pronto para uso.

Instalação do Python

Para trabalhar com o Shiny offline, você precisa ter o Python instalado no computador. Se ainda não instalou, acesse o site oficial em python.org e baixe a versão mais recente do Python para o seu sistema operacional. Se já tiver o Python instalado, recomendo atualizar para a versão mais nova para garantir que o Shiny rode corretamente.

Execute o instalador baixado e marque a opção "Add Python to PATH" durante a instalação. Isso facilita rodar o Python pelo terminal. Abra o prompt de comando ou terminal e digite python --version para verificar se a instalação deu certo. Você deve ver o número da versão exibido. Para mais conveniência, você também pode instalar uma IDE (ambiente de desenvolvimento integrado).

Instalação do Shiny

Com o Python configurado, você já pode instalar o Shiny. Tendo a versão mais recente do Python, basta abrir o prompt de comando ou terminal e usar o comando abaixo para instalar a biblioteca Shiny para Python com o pip:

pip install shiny

Se você usa conda em vez de pip, utilize este comando:

conda install -c conda-forge shiny

O Shiny pode exigir dependências adicionais dependendo da sua configuração. Garanta que elas estejam instaladas seguindo as instruções na documentação do Shiny.

Configuração do ambiente de desenvolvimento

Agora que você tem Python e Shiny instalados, há três pontos finais a considerar.

  1. IDE: se você usa uma IDE, como o VS Code, pode instalar uma extensão para renderizar os outputs do Shiny dentro da IDE.
  2. Controle de versão: considere usar sistemas de controle de versão como Git para rastrear mudanças no seu código. Inicialize um repositório Git na pasta do projeto para gerenciar e colaborar facilmente nos seus apps Shiny.
  3. Estrutura do código: organize a estrutura do projeto. Crie pastas separadas para seus aplicativos Shiny, conjuntos de dados e quaisquer recursos adicionais. Isso ajuda a manter uma base de código limpa e organizada, o que é boa prática em qualquer projeto.

Com o ambiente de desenvolvimento configurado, você já pode começar a criar aplicativos web interativos com Shiny para Python.

Criando um app básico em Shiny

Entendendo a estrutura de um app Shiny

Um app Shiny é composto por dois componentes principais: a interface do usuário (UI) e a lógica do servidor.

A UI define a aparência do app e quais elementos estarão disponíveis para interação do usuário. Tudo o que o usuário vê ou com o que interage faz parte da UI, incluindo sliders, botões e gráficos.

A UI é criada com funções que começam com "ui.", como ui.input_numeric, ui.input_slider e ui.output_text. Essas funções são encapsuladas em uma função de página, geralmente ui.page_fluid, que descreve o layout básico da página.

A lógica do servidor define como o app se comporta e responde aos inputs do usuário. Ela consiste em funções que recebem as entradas da UI, as processam e atualizam os elementos de saída conforme necessário. A lógica do servidor é criada com a função server e inclui expressões reativas para lidar com inputs e outputs.

Depois de definir a UI e a lógica do servidor, conectamos tudo em um aplicativo completo, que deve se chamar "app".

image3.png

Entendendo o modelo de programação reativa

Considere este exemplo da documentação do Shiny.

O exemplo recebe um input do usuário por meio de um slider e o usa para fazer um cálculo exibido na caixa de texto abaixo do slider. Esse exemplo simples está rodando em um navegador local no VS Code.

Como dá para ver, a mágica do Shiny é a interatividade. O motor por trás disso é o modelo de programação reativa. No Shiny, definimos expressões reativas para criar uma cadeia de dependências entre inputs e outputs. Quando um input muda, todas as expressões reativas e saídas dependentes são atualizadas automaticamente. Essa reatividade está no coração do Shiny. Você pode ler mais sobre a reatividade do Shiny aqui.

Alguns elementos-chave tornam essa reatividade possível.

Primeiro, o cálculo reativo, ou reactive.Calc. É um cálculo baseado em um input. Ele mantém em cache o valor retornado até que o input mude; quando isso acontece, o cálculo é reexecutado com o novo input. Isso permite que seu app responda com eficiência às entradas do usuário. Cálculos reativos usam o decorator @reactive.Calc, como no exemplo abaixo.

@reactive.Calc
def double_number():
	return input.number() * 2

Outro elemento reativo é o efeito reativo, ou reactive.Effect. Um efeito reativo não retorna um valor quando executa. Em vez disso, dispara um efeito, como modificar uma variável ou salvar um arquivo. Ele também é reexecutado quando os inputs mudam. O reactive.Effect mais comum é o decorator @output, que adiciona uma string com o resultado à fila de mensagens, como no exemplo abaixo.

@output
@render.text
def txt():
	return f"The value of x is {input.x()}"

Às vezes, você pode não querer que a reatividade do seu app seja tão instantânea. Por exemplo, se você tem um modelo computacionalmente caro, pode preferir esperar até que vários parâmetros sejam atualizados antes de reexecutá-lo. Nesses casos, reactive.event() ou reactive.isolate() oferecem opções para limitar a reatividade do app.

Adicionando interatividade ao seu app Shiny

Quando você precisa de um app mais complexo

Com essa lógica reativa, o Shiny para Python pode criar apps tão complexos ou simples quanto você precisar. Você pode adicionar botões de opção, caixas de seleção, sliders, caixas de texto, gráficos, mapas e muito mais! Aqui está um exemplo um pouco mais complexo da documentação do Shiny.

Neste exemplo, criamos um mapa de calor com dados aleatórios. Há uma escolha por botão de opção para o estilo do heatmap que o usuário quer ver, e o slider altera a faixa de cores do mapa. A Posit (empresa que criou o Shiny) oferece vários outros exemplos no site, incluindo este divertido clone do Wordle.

Além de ser divertido, esse tipo de interatividade tem muitas aplicações úteis. Você pode criar um modelo que use fatores ambientais, como salinidade e temperatura, para prever florações de algas. Um pesquisador em campo poderia inserir os valores atuais no seu app Shiny e receber uma previsão em tempo real.

Você pode criar um modelo com projeções de receita anual sob determinadas condições. Assim, gestores poderiam simular cenários inserindo números de vendas ou marcando caixas para indicar os produtos ofertados, vendo as previsões atualizarem diante dos olhos.

Os casos de uso são inúmeros em diversos setores.

Tipos de inputs e outputs

O Shiny oferece diversos tipos de entrada e saída para atender a diferentes necessidades de visualização e interação com dados. Aqui está uma tabela simples com inputs e outputs comuns no Shiny para Python.

Inputs

O que faz?

Action Button Input

Fornece um botão para o usuário selecionar.

Action Link Input

Permite que o usuário clique em um link.

Text input

Disponibiliza uma caixa para uma linha simples de texto.

Numeric input

Disponibiliza uma caixa numérica com setas para cima e para baixo.

Slider input

Cria um controle deslizante numérico.

Checkbox input

Gera uma única caixa de seleção para aplicações Verdadeiro/Falso.

Switch input

Gera um único interruptor liga/desliga.

Checkbox group input

Cria várias caixas de seleção para múltiplas escolhas.

Select input

Fornece um menu suspenso de opções.

Radio buttons input

Cria botões de opção, obrigando uma única escolha.

Text area input

Disponibiliza uma caixa de texto maior e redimensionável para textos longos.

Date input

Cria uma caixa de data com calendário para seleção.

Date range input

Basicamente duas caixas de data emparelhadas para inserir um intervalo.

Password input

Cria uma caixa de texto que oculta os caracteres digitados.

———————————————————————————————————————————

Outputs

O que faz?

Text output

Escreve texto em HTML simples.

Verbatim text output

Exibe texto em um bloco de código monoespaçado.

UI output

Permite uma UI mais dinâmica com base nos inputs do usuário.

Plot output

Gera um gráfico usando bibliotecas Python comuns, como matplotlib.

Table output

Cria uma tabela simples com cabeçalhos de coluna.

Data Frame / Grid output

Cria uma tabela personalizável com filtros, grades e limite de linhas.

Para ver a lista completa de componentes do Shiny, confira esta página.

Personalizando a interface do usuário no Shiny para Python

Layouts e temas

O Shiny oferece flexibilidade para personalizar a interface do usuário por meio de diferentes layouts usando uma função de página. A função mais usada é a page_fluid(), que fornece um design responsivo que se ajusta a diferentes tamanhos de tela. Um layout de largura fixa, adequado para apps com requisitos específicos de design, pode ser obtido com a função page_fixed().

O Shiny utiliza HTML para criar seus apps web. Isso significa que você pode usar temas em CSS para estilizar seu app. Adicionar estilos CSS personalizados permite ajustar a aparência do app Shiny ao seu gosto ou à identidade visual da sua empresa.

Implementação de widgets e extensões customizadas

O Shiny é compatível com ipywidgets para uma variedade de gráficos interativos, mapas, visualizações 3D e streaming de mídia. Ele também oferece alguma compatibilidade com outros widgets Python que podem ser salvos como arquivo HTML. Ao incorporar widgets personalizados, você adapta seu app Shiny a casos de uso específicos e cria uma experiência mais sob medida.

Publicando seu app Shiny para Python

Entendendo as diferentes opções de deploy

Depois de criar um app Shiny bacana, você provavelmente vai querer compartilhá-lo com um público maior, seja no seu portfólio ou com um cliente, publicando-o na web. O Shiny oferece várias opções de deploy para diferentes necessidades.

Deploy local: você pode publicar seu app Shiny em um servidor local, tornando-o acessível dentro da sua organização ou para um grupo específico de usuários.

Plataformas em nuvem: plataformas em nuvem oferecem soluções escaláveis e acessíveis para publicar apps Shiny. Opções populares incluem:

  • Shinyapps.io: a plataforma da Posit, feita especificamente para hospedar aplicativos Shiny.
  • Heroku: uma plataforma em nuvem que suporta o deploy de apps Shiny.
  • AWS, Azure e Google Cloud: grandes provedores de nuvem que permitem publicar apps Shiny em máquinas virtuais ou contêineres.

ShinyLive: o Shiny oferece uma forma nova de executar aplicativos diretamente no navegador sem um servidor separado rodando Python. Ele combina WebAssembly e Pyodide para permitir que apps Shiny rodem sem instalar Python ou Shiny no seu computador. Essa plataforma limita os pacotes Python disponíveis e pode não ser tão segura quanto outras opções, mas é uma ótima forma de compartilhar código não sensível rapidamente.

Conclusão

Shiny para Python é uma novidade empolgante no cenário de desenvolvimento de apps web. Seu uso pode turbinar seu projeto de dados sem exigir muito tempo aprendendo desenvolvimento web. Se você quer experimentar o Shiny para R, confira este curso de fundamentos de Shiny da DataCamp e este curso sobre criação de dashboards com R Shiny. Depois de dominar o básico, pratique suas novas habilidades com um estudo de caso em Shiny!


Amberle McKee's photo
Author
Amberle McKee
LinkedIn

Sou PhD e tenho 13 anos de experiência trabalhando com dados em um ambiente de pesquisa biológica. Crio software em várias linguagens de programação, incluindo Python, MATLAB e R. Sou apaixonado por compartilhar meu amor pelo aprendizado com o mundo.

Tópicos
Python
Ciência de dados

Comece sua jornada com Shiny hoje mesmo!

Curso

Construindo Aplicações Web com Shiny em R

4 h
33.4K
Shiny é um pacote R que facilita criar apps web interativos diretamente em R, permitindo que sua equipe explore seus dados como dashboards ou visualizações.
Ver detalhesRight Arrow
Iniciar Curso
Ver maisRight Arrow
Relacionado

blog

Como aprender Python do zero em 2026: um guia completo

Descubra como aprender Python em 2026, suas aplicações e a demanda por habilidades em Python. Comece hoje sua jornada com nosso guia completo.
Matt Crabtree's photo

Matt Crabtree

15 min

blog

50+ projetos em Python para todos os níveis em 2026

Explore mais de 50 ideias de projetos em Python, do iniciante ao avançado, incluindo ciência de dados, machine learning, IA e desenvolvimento web para fortalecer seu portfólio.

Tutorial

Desenvolvimento backend com Python: guia completo para iniciantes

Este guia completo ensina os fundamentos do desenvolvimento backend com Python. Aprenda conceitos básicos, frameworks e boas práticas para começar a criar aplicações web.
Oluseye Jeremiah's photo

Oluseye Jeremiah

15 min

Tutorial

Guia passo a passo para criar mapas em Python usando a biblioteca Plotly

Faça seus dados se destacarem com mapas impressionantes criados com Plotly em Python
Moez Ali's photo

Moez Ali

7 min

Tutorial

Tutorial do Python pandas: O guia definitivo para iniciantes

Você está pronto para começar sua jornada com os pandas? Aqui está um guia passo a passo sobre como você pode começar.
Vidhi Chugh's photo

Vidhi Chugh

15 min

Tutorial

21 ferramentas essenciais do Python

Aprenda sobre as ferramentas Python essenciais para o desenvolvimento de software, raspagem e desenvolvimento da Web, análise e visualização de dados e aprendizado de máquina.
Abid Ali Awan's photo

Abid Ali Awan

6 min

Ver MaisVer Mais