Streamlit: Crie Dashboards e Aplicações de Dados com Python em Minutos

O que é o Streamlit?
Streamlit é um framework open-source em Python que permite criar aplicações web interativas para machine learning e ciência de dados com extrema rapidez. Diferente de soluções tradicionais como Flask ou Django, o Streamlit foi projetado especificamente para cientistas de dados e engenheiros de ML que querem transformar scripts em dashboards sem escrever uma linha de HTML, CSS ou JavaScript.
Por que Streamlit?
Enquanto ferramentas como Dash (Plotly) e Panel exigem configuração complexa e conhecimento de frameworks web, o Streamlit adota uma abordagem radicalmente simples: cada iteração do seu script Python gera automaticamente a interface do usuário. Isso reduz o tempo de desenvolvimento de dias para minutos. Veja os principais diferenciais:
- Zero front-end: widgets e layouts são criados com funções Python puras
- Hot-reload nativo: salve o script e a interface atualiza instantaneamente
- Componentes integrados: gráficos, tabelas, mapas, formulários e mídia prontos para uso
- Compatibilidade total: funciona com Pandas, Matplotlib, Plotly, Altair e toda a stack Python
- Deploy simplificado: compartilhe apps via Streamlit Community Cloud, Docker ou qualquer cloud
Instalação e Primeiros Passos
A instalação é feita com um único comando pip:
pip install streamlit
Crie um arquivo app.py com o conteúdo mínimo:
import streamlit as st
import pandas as pd
st.title("Minha Primeira App Streamlit")
st.write("Olá, mundo dos dados!")
df = pd.DataFrame({
"coluna_a": [1, 2, 3, 4],
"coluna_b": [10, 20, 30, 40]
})
st.dataframe(df)
st.line_chart(df)
Execute com:
streamlit run app.py
Uma aba do navegador abrirá automaticamente com sua aplicação rodando.
Widgets Interativos Essenciais
O Streamlit oferece dezenas de widgets prontos para criar interatividade sem esforço:
- st.slider: controles deslizantes para selecionar valores numéricos
- st.selectbox: dropdown para escolher entre opções pré-definidas
- st.multiselect: seleção múltipla para filtros complexos
- st.date_input: calendário interativo para datas
- st.file_uploader: upload de arquivos CSV, Excel, imagens e muito mais
- st.color_picker: seletor de cores para personalização visual
Layout e Organização
Para aplicações mais complexas, o Streamlit oferece ferramentas de layout que organizam o conteúdo em colunas, abas e expansores:
import streamlit as st
# Layout em colunas
col1, col2 = st.columns(2)
with col1:
st.header("Gráfico 1")
st.line_chart(data)
with col2:
st.header("Gráfico 2")
st.bar_chart(data)
# Abas para organizar seções
tab1, tab2, tab3 = st.tabs(["Visão Geral", "Detalhes", "PDF"])
with tab1:
st.metric("Total de Vendas", "R$ 1.234.567", "+12%")
with tab2:
st.dataframe(dados_detalhados)
# Expansores para conteúdo colapsável
with st.expander("Ver explicação detalhada"):
st.write("Este conteúdo só aparece quando o usuário expande.")
Cache e Performance
Um dos recursos mais poderosos do Streamlit é o sistema de caching, que evita recálculos desnecessários quando os dados não mudam:
import streamlit as st
import pandas as pd
@st.cache_data
def carregar_dados(url):
# Esta função só executa uma vez, a menos que a URL mude
return pd.read_csv(url)
dados = carregar_dados("https://exemplo.com/dados.csv")
st.dataframe(dados)
Use @st.cache_data para dados e @st.cache_resource para conexões de banco, modelos de ML e outros objetos que consomem memória.
Integração com Plotly e Matplotlib
Streamlit integra-se nativamente com as principais bibliotecas de visualização:
import streamlit as st
import plotly.express as px
import matplotlib.pyplot as plt
# Plotly - gráficos interativos
fig = px.scatter(df, x="vendas", y="lucro", color="regiao")
st.plotly_chart(fig)
# Matplotlib - gráficos estáticos
fig, ax = plt.subplots()
ax.plot(dados["mes"], dados["receita"])
st.pyplot(fig)
Deploy e Compartilhamento
Existem três formas principais de fazer deploy de uma aplicação Streamlit:
- Streamlit Community Cloud (gratuito): conecte seu repositório GitHub e faça deploy com um clique
- Docker: containerize sua app com uma imagem oficial do Streamlit
- Cloud Providers: AWS, GCP, Azure ou qualquer servidor com suporte a Python
Para Docker, um Dockerfile mínimo seria:
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 8501
CMD ["streamlit", "run", "app.py", "--server.port=8501"]
Conclusão
O Streamlit democratizou a criação de dashboards e aplicações de dados ao eliminar a barreira do front-end. Em 2026, a ferramenta continua evoluindo com suporte nativo a componentes customizados, integração com grandes modelos de linguagem (LLMs) e performance aprimorada para datasets massivos. Se você trabalha com dados e ainda não experimentou o Streamlit, está perdendo uma das ferramentas mais produtivas do ecossistema Python.







