Gere dashboards visuais como imagens usando HTML/CSS e Playwright.
Project description
Dashgen
📊 Gere dashboards visuais como imagens (PNG) diretamente do Python com HTML, CSS e Chart.js.
✨ O que é?
dashgen é um micro-framework que permite criar dashboards dinâmicos e exportá-los como imagens de alta qualidade.
Ideal para gerar relatórios diários, KPIs, resumos visuais e compartilhar automaticamente via e-mail, WhatsApp, etc.
🛠 Instalação
pip install dashgen
playwright install
🚀 Exemplo Completo
from dashgen import Dashboard
from dashgen.core.layout import Row, Column
# Criar o dashboard
db = Dashboard(
title="Relatório de Vendas",
logo_path="logo.png", # Caminho da logo opcional
size=(1080, 1080),
theme={
"primary": "#005f73", # Cor de destaque
"accent": "#94d2bd", # Cor auxiliar
"bg": "#fefae0", # Fundo
"text": "#001219" # Texto padrão
}
)
# Linha com dois cards lado a lado
db.add(Row(
Column(6).add_card("Receita Acumulada", 8200000, 10000000),
Column(6).add_card("Unidades Vendidas", 320, 400)
))
# Linha com tabela e gráfico de barras
dados = [
{"Nome": "Projeto A", "Meta": "R$ 2M", "Realizado": "R$ 1.6M", "Variação": "-20%"},
{"Nome": "Projeto B", "Meta": "R$ 3M", "Realizado": "R$ 3.1M", "Variação": "+3%"},
]
db.add(Row(
Column(6).add_table("Receita por Empreendimento", dados, ["Nome", "Meta", "Realizado", "Variação"]),
Column(6).add_chart("bar", "Vendas Mensais", [
{"label": "Jan", "value": 120},
{"label": "Fev", "value": 135},
{"label": "Mar", "value": 160},
])
))
# Gráfico de linha ocupando a largura total
db.add(Row(
Column(12).add_chart("line", "Receita Total (R$)", [
{"label": "Jan", "value": 1200000},
{"label": "Fev", "value": 1450000},
{"label": "Mar", "value": 1600000},
])
))
# Exportar como imagem
db.generate("output_dashboard.png")
🧱 Componentes Disponíveis
🧩 Layout
Row(...): Agrupa colunas horizontalmente.Column(width=...): Define largura (1 a 12 colunas).
📦 Cards
Column(6).add_card("Título", valor, meta)
KPI com barra de progresso proporcional a valor/meta.
📊 Tabela
Column(6).add_table("Título", data, headers)
data: lista de dicionáriosheaders: chaves a exibir
📈 Gráfico
Column(6).add_chart("bar", "Título", data)
Column(6).add_chart("line", "Título", data)
data: lista de{ "label": ..., "value": ... }chart_type:"bar"ou"line"
🎨 Tema Personalizado
theme = {
"primary": "#005f73", # Cor de destaque (barras, títulos)
"accent": "#94d2bd", # Cor auxiliar
"bg": "#fefae0", # Fundo da imagem
"text": "#001219" # Texto padrão
}
📚 Documentação Técnica
📘 Classe: Dashboard
Dashboard(
title="Meu Relatório",
logo_path=None,
size=(1080, 1080),
theme=None
)
| Parâmetro | Tipo | Descrição |
|---|---|---|
title |
str |
Título no topo da imagem |
logo_path |
str (opcional) |
Caminho para logo |
size |
(int, int) |
Tamanho da imagem |
theme |
dict[str, str] |
Cores CSS (ver acima) |
✅ Dashboard.add(layout: Row)
Adiciona uma linha com colunas ao dashboard.
✅ Dashboard.generate(path: str)
Gera e salva a imagem em path.
📘 Classe: Row
Row(Column(...), Column(...))
Agrupa colunas horizontalmente. Largura total deve somar até 12.
📘 Classe: Column(width=12)
Define a largura da coluna (1 a 12).
✅ Column.add_card(title, value, target)
Exibe um indicador com barra de progresso.
✅ Column.add_table(title, data, headers)
Cria uma tabela a partir de dados estruturados.
✅ Column.add_chart(chart_type, title, data)
Cria gráfico do tipo "bar" ou "line" com dados de label e value.
✅ Requisitos
- Python 3.7+
playwright(playwright install)jinja2
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dashgen-0.1.3.tar.gz.
File metadata
- Download URL: dashgen-0.1.3.tar.gz
- Upload date:
- Size: 8.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
256e0588f7fdd42be49840838b24a94702dc3fd675a20a87076043e30dbe8f41
|
|
| MD5 |
5eeaa39a796886ed66dd7a319ccea1a2
|
|
| BLAKE2b-256 |
a02431b8a5e9f180fa533a45b89e895c4e516ffac85c3d3fa17abd5d522e97d9
|
File details
Details for the file dashgen-0.1.3-py3-none-any.whl.
File metadata
- Download URL: dashgen-0.1.3-py3-none-any.whl
- Upload date:
- Size: 8.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4ef03e15d4bbee3e8f22d973764f0da53211116e0d491cf207e1b5147747c35
|
|
| MD5 |
ab66c603ca2fe0dcf4463e13649c9c8a
|
|
| BLAKE2b-256 |
6d5035f443133fdb7ce228964430ca03d292114c532abc038560ee5fdc0beeaa
|