Рубрики
Без рубрики

Простые мониторные панели электронной почты с dashflow.io

Если вам нужно создать информационные панели, отправленные по электронной почте, управляемую базой данных, ознакомьтесь с https://dashflow.io. I… Tagged с Python, SQL, OpenSource.

Если вам нужно создать панели панели, отправленные по электронной почте, управляемые базой данных, проверьте https://dashflow.io . Его можно использовать как в качестве утилиты командной строки или в качестве модуля Python.

Даже со всеми инструментами BI, я все еще получаю запрос на панели панелей, которые будут отправлены по электронной почте или печати. Такие инструменты, как Tableau, не поддаются печати или дружелюбны по электронной почте. У некоторых людей просто нет времени, чтобы пройти несколько кликов и сверлить, когда они на встречах весь день.

Dash Flow будет работать из коробки с любым модулем базы данных Python DB-API2, который можно использовать с SQLALCHEMY. Все запросы вашей базы данных хранятся в файлах SQL, под капюшоном, который он использует https://pugsql.org/ который может быть лучше описан как обратный орм. Полностью построены на модулях с открытым исходным кодом.

Электронная почта построена с помощью простого файла JSON, который имеет массив разделов. Разделы могут быть чем угодно из таблиц, диаграмм или текста со смешанными данными.

На данный момент он поддерживает только отправку через SMTP. Но если вы хотите попробовать, https://sendgrid.com есть хороший бесплатный уровень.

Диаграммы отображаются с использованием https://quickchart.io/ Анкет

Теперь, как насчет того, чтобы показать шаги, чтобы отправить электронное письмо.

Клон и настройка Dashflow

git clone https://github.com/maximoguerrero/dashflow.git
cd dashflow
chmod u+x df-cli.py

Создать папки для электронной почты

mkdir testemail
cd testemail

mkdir sql

cp ../sample/sample.db sample.db

Создайте свой файл SQL

Поскольку мы используем pusql, первая строка файла SQL – это комментарий, который используется для определения модуля и его типа возврата. Здесь модули имя media_profit_by_type_filtered И это то, что вы будете использовать в своем файле конфигурации.

Этот запрос просто возвращает тип СМИ, который был наиболее прибыльным из нашей базы данных. Сохраните этот файл в SQL Папка, которую мы создали на предыдущем шаге

-- :name media_profit_by_type_filtered    :many
SELECT  mt.Name as label, strftime('%Y',InvoiceDate) as year  ,  printf("%.2f", sum(ii.UnitPrice ) )  as value
FROM `tracks` t
inner join `media_types` mt on mt.MediaTypeId = t.MediaTypeId
inner join `invoice_items` ii on ii.TrackId = t.TrackId
inner join `invoices` i on i.InvoiceId = ii.InvoiceId
where mt.Name like '%' || :kind || '%'
group by t.MediaTypeId, year
order by year;

Далее создайте простой JSON

В этом файле мы предоставим пару вещей. Строка соединения, совместимая с SQLALCHEMY, относительный путь к папке SQL, где находятся файлы SQL. QuickCharts.io, совместимый с URL.

Массив разделов содержит определение для диаграммы, модульна имени – это то, что мы определили в файле SQL. Параметр – это параметр, который использовался в файле SQL.

Следующей важной частью является раздел SMTP, где вы предоставляете параметры для SMTP -сервера.

{
    "isDebug": true,
    "connection": "sqlite:////sample.db",
    "sqlfolder": "sql/",
    "quickChartsUrl": "https://quickcharts.dashflow.io/chart?bkg=white&c=",
    "title": "This Months Dashboard",
    "description": "Ad reprehenderit amet mollit Lorem aliquip sint anim ipsum nisi deserunt commodo veniam magna.",
    "sections": [
        {
            "type": "chart",
            "sectionTitle": "horizontal bar chart! with query parramter",
            "description": "Irure esse eu officia consequat mollit ullamco est aliquip..",
            "moduleName": "media_profit_by_type_filtered",
            "moduleParameters": [
                {
                    "name": "kind"
                }
            ],
            "groupBy": "year",
            "chart": {
                "type": "horizontalBar"
            }
        }
    ],
    "to": [
        {
            "type": "string",
            "value": "email.to@send.com"
        }

    ],
    "from": "email@from.com",
    "subject": "my first email",
    "sendEngine": {
        "type": "smtp",
        "host": "YOUR_SMTP_HOST",
        "port": "587",
        "enableTLS": true,
        "requiresAuthentication": true,
        "useEnvVariable":{
            "username": "SMTP_USER",
            "password": "SMTP_PWD"

        }
    }
}

Далее давайте запустим сценарий

./df-cli.py --configFile testemail/sample-config.json --parameter="kind:audio"

Вы получите следующее электронное письмо:

Оригинал: “https://dev.to/maximoguerrero/easy-email-dashboards-with-dashflow-io-489c”