Gere dashboards visuais como imagens usando HTML/CSS e Playwright.
Project description
Dashgen
📊 Gere dashboards visuais como imagens (PNG) diretamente do Python com HTML, Tailwind 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, sistemas internos etc.
🛠 Instalação
pip install dashgen
playwright install
🚀 Exemplo Completo
from dashgen import Dashboard
from dashgen.core.layout import Row, Column
# Criar o dashboard com altura automática, título estilizado e tema
db = Dashboard(
title="📊 Relatório de Desempenho Comercial",
title_style="text-3xl font-bold text-emerald-700",
logo_path="logo.png",
size=(1080, None),
auto_size=True,
theme={
"primary": "#0f766e",
"accent": "#22d3ee",
"bg": "#f0fdfa",
"text": "#082f49"
}
)
# Linha com dois cards
db.add(Row(
Column(6).add_card("Receita Acumulada", 9000000, 10000000),
Column(6).add_card("Unidades Vendidas", 430, 500)
))
# Linha com tabela e gráfico de barras
dados = [
{"Nome": "Projeto A", "Meta": "R$ 3M", "Realizado": "R$ 2.4M", "Variação": "-20%"},
{"Nome": "Projeto B", "Meta": "R$ 5M", "Realizado": "R$ 5.2M", "Variação": "+4%"}
]
db.add(Row(
Column(6).add_table("Desempenho por Projeto", dados, ["Nome", "Meta", "Realizado", "Variação"]),
Column(6).add_chart(
"bar",
"Vendas por Mês",
[
{"label": "Jan", "value": 120},
{"label": "Fev", "value": 135},
{"label": "Mar", "value": 160},
{"label": "Abr", "value": 110},
{"label": "Mai", "value": 190}
],
options={
"height": 300,
"show_data_labels": True,
"show_legend": False,
"show_x_axis": True,
"show_y_axis": True,
"autosize_x": True,
"bar_color": "#0f766e"
}
)
))
# Linha com gráfico de linha (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},
{"label": "Abr", "value": 1800000},
{"label": "Mai", "value": 2100000}
],
options={
"height": 460,
"show_legend": False,
"show_x_axis": True,
"show_y_axis": True,
"autosize_x": True,
"tension": 0.4,
"fill": False,
"border_color": "#22d3ee"
}
)
))
# Gerar imagem
db.generate("output_dashboard.png")
print("✅ Dashboard gerado com sucesso!")
🧱 Componentes Disponíveis
📐 Layout
Row(...): Agrupa colunasColumn(width=...): Define largura (1 a 12)
📦 Card (KPI)
Column(6).add_card("Título", valor, meta, style={ ... })
Suporta personalização com:
title_color,title_size,text_sizebar_color,card_class
📊 Tabela
Column(6).add_table("Título", data, headers)
data: lista de dicionáriosheaders: nomes das colunas a exibir
📈 Gráfico (Chart.js)
Column(6).add_chart("bar" ou "line", "Título", data, options={...})
-
data: lista comlabelevalue -
options:height: altura do canvasfill: preencher área sob a linhatension: suavidade das curvasautosize_x/autosize_y: expandir horizontal/verticalshow_legend: mostrar legendashow_x_axis/show_y_axis: mostrar eixosshow_data_labels: mostrar valores sobre as barras
🎨 Tema Personalizado
theme = {
"primary": "#005f73", # Barras e títulos
"accent": "#94d2bd", # Detalhes
"bg": "#fefae0", # Fundo da imagem
"text": "#001219" # Cor do texto
}
🧠 Funcionalidades Especiais
auto_size=True: ajusta altura da imagem com base no conteúdo- Responsivo com Tailwind
- Gráficos com Chart.js
- Rótulos de valores (
chartjs-plugin-datalabels) - Estilização por componente (
style,options)
📚 API Referência
📘 Dashboard(...)
| Parâmetro | Tipo | Descrição |
|---|---|---|
title |
str |
Título do dashboard |
logo_path |
str (opcional) |
Caminho da logo |
size |
(int, int) |
Tamanho fixo da imagem |
auto_size |
bool |
Ajuste automático de altura |
theme |
dict |
Cores do tema |
✅ Requisitos
- Python 3.7+
playwrightjinja2
pip install dashgen
playwright install
🖼 Gere imagens de dashboards com visual moderno, responsivo e exportável – em uma linha de código.
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.9.tar.gz.
File metadata
- Download URL: dashgen-0.1.9.tar.gz
- Upload date:
- Size: 11.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6eeda7d9c04aeaedcc81b07281a5648f46ea1a7046e7ac20c44daaa12539d82
|
|
| MD5 |
49de909905282638720fa49dded263cb
|
|
| BLAKE2b-256 |
d1bf68d98e22892478c6f93c12c92c8deb2f70ee59761b356f9aa31c018fe4ec
|
File details
Details for the file dashgen-0.1.9-py3-none-any.whl.
File metadata
- Download URL: dashgen-0.1.9-py3-none-any.whl
- Upload date:
- Size: 11.0 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 |
d3474f99f2ed43c3e04c3a5632bb582130b18aef23a210ca8aa862ee7352a88a
|
|
| MD5 |
9ec011eae62bdf4263fa0b0c8aa0eb04
|
|
| BLAKE2b-256 |
b80fb14189211ea43f0e2542465fb4ebe0db756913e6b3b7feb5860bafba151a
|