Streamlit e o framework Python que permite criar aplicacoes web interativas e dashboards de dados sem conhecer HTML, CSS ou JavaScript. Em poucos minutos, voce transforma um script Python em uma aplicacao web completa com graficos, tabelas, filtros e inputs. Este guia mostra como usar na pratica.
Por que Streamlit explodiu em popularidade
Antes do Streamlit, para um cientista de dados ou analista mostrar resultados interativos, as opcoes eram: Jupyter Notebook (limitado, nao e web), Flask/Django (muito trabalho para algo simples), Power BI/Tableau (ferramentas separadas, fora do ecossistema Python).
Streamlit resolveu isso: escreva Python normal e o framework automaticamente gera uma interface web. Cada variavel que voce exibe vira um componente visual. Cada input do usuario (slider, select, text_input) atualiza a aplicacao em tempo real.
Instalacao e Hello World
pip install streamlit. Crie um arquivo app.py:
import streamlit as st
import pandas as pd
st.title(“Meu primeiro dashboard”)
st.write(“Analise de vendas da empresa”)
# Upload de arquivo
arquivo = st.file_uploader(“Faca upload do CSV de vendas”, type=”csv”)
if arquivo:
df = pd.read_csv(arquivo)
# Filtros interativos
regioes = st.multiselect(“Filtrar por regiao:”, df[“regiao”].unique(), default=df[“regiao”].unique())
df_filtrado = df[df[“regiao”].isin(regioes)]
# Metricas em cards
col1, col2, col3 = st.columns(3)
col1.metric(“Total Vendas”, f”R$ {df_filtrado[valor].sum():,.0f}”)
col2.metric(“Ticket Medio”, f”R$ {df_filtrado[valor].mean():,.0f}”)
col3.metric(“Total Pedidos”, len(df_filtrado))
# Grafico de barras
vendas_por_regiao = df_filtrado.groupby(“regiao”)[“valor”].sum().sort_values(ascending=False)
st.bar_chart(vendas_por_regiao)
# Tabela com dados
st.dataframe(df_filtrado)
Execute com: streamlit run app.py. O browser abre automaticamente em localhost:8501 com a aplicacao rodando.
Componentes disponiveis
Streamlit tem componentes para praticamente qualquer necessidade de UI de dados:
Inputs: st.text_input, st.number_input, st.slider, st.selectbox, st.multiselect, st.date_input, st.file_uploader, st.checkbox, st.radio.
Saida: st.write (adaptativo), st.dataframe (tabela interativa), st.table (tabela estatica), st.metric (card com KPI), st.json (JSON formatado), st.code (bloco de codigo).
Graficos: st.line_chart, st.bar_chart, st.area_chart (graficos simples). Para graficos avancados: st.plotly_chart (Plotly), st.altair_chart (Altair/Vega), st.pyplot (Matplotlib).
Layout: st.columns (colunas lado a lado), st.sidebar (barra lateral com filtros), st.tabs (abas), st.expander (secao expansivel), st.container.
Conectando a bancos de dados
import streamlit as st
import pandas as pd
from sqlalchemy import create_engine
@st.cache_data(ttl=600) # cache por 10 minutos
def carregar_dados():
engine = create_engine(st.secrets[“DATABASE_URL”])
return pd.read_sql(“SELECT * FROM vendas WHERE data >= CURRENT_DATE – INTERVAL 30 DAY”, engine)
df = carregar_dados()
st.success(f”Dados carregados: {len(df)} registros”)
O decorator @st.cache_data evita reexecutar a query toda vez que o usuario interage com a pagina — fundamental para performance.
Segredos (senhas, chaves de API) sao armazenados em .streamlit/secrets.toml e acessados via st.secrets.
Deploy
Streamlit Community Cloud: deploy gratuito conectando seu repositorio GitHub. Ideal para projetos pessoais e demos. O deploy e feito com um clique.
Para producao empresarial: Docker + cloud (AWS, GCP, Azure). O Dockerfile e simples: FROM python:3.11-slim, COPY, pip install, CMD streamlit run app.py.
Casos de uso reais
Dashboard de monitoramento de KPIs de negocio: conectado ao BigQuery ou PostgreSQL, atualizado automaticamente. Ferramenta interna de analise: time de marketing sobe CSV com dados de campanha e ve metricas instantaneamente. MVP de produto de dados: prototipo funcional de um produto de analytics para validar com clientes antes de investir em frontend completo. Monitoramento de modelos de ML: acompanhar drift, acuracia e volume de predicoes em tempo real.
Tem um projeto em mente?
Somos especialistas em transformar ideias em produtos digitais. Apps, sites, automações e IA — vamos construir juntos.