Примеры использования Jinja шаблонов в Apache Superset
Apache Superset — это платформа для анализа данных, которая позволяет пользователям создавать и визуализировать данные из различных источников. Jinja — это шаблонизатор на языке Python, который может быть использован в Apache Superset для создания динамических отчетов и визуализаций. Вот несколько примеров использования Jinja:
Использование Jinja для создания динамического заголовка отчета:
{% set title = 'Отчет о продажах за {{ date_range }}' %}
<h1>{{ title }}</h1>
Использование Jinja для форматирования числовых данных в отчете:
{% set revenue = 1234567.89 %}
<p>Выручка: {{ revenue|floatformat(2) }} руб.</p>
Использование Jinja для форматирования текстовых полей в отчетах.
<p>{{ text|safe }}</p>
Использование Jinja для создания динамических ссылок на страницы отчета:
{% set page_url = '/dashboard/page/{{ page_id }}' %}
<a href="{{ page_url }}">Перейти к странице</a>
Использование Jinja для создания динамических ссылок в отчетах.
<a href="{{ url }}">{{ link_text }}</a>
Использование Jinja для создания динамических фильтров по дате:
{% set date_filter = {
'name': 'date',
'label': 'Выберите дату',
'type': 'datepicker',
'default': 'today',
} %}
{{ date_filter }}
Использование Jinja для создания динамических графиков на основе данных из источника данных:
{% set chart_data = data.groupby('month')['sales'].sum() %}
{% set chart = visualization.chart('bar')
.set_data(chart_data)
.set_x_axis('month')
.set_y_axis('sales')
%}
{{ chart.render() }}
Использование Jinja для форматирования данных в таблице:
{% set table_data = data.head(10) %}
<table>
<thead>
<tr>
<th>Название</th>
<th>Продажи</th>
</tr>
</thead>
<tbody>
{% for row in table_data %}
<tr>
<td>{{ row['name'] }}</td>
<td>{{ row['sales']|floatformat(2) }}</td>
</tr>
{% endfor %}
</tbody>
</table>
Использование Jinja для создания динамических диаграмм на основе данных из источника данных:
{% set chart_data = data.groupby('region')['sales'].sum() %}
{% set chart = visualization.chart('pie')
.set_data(chart_data)
%}
{{ chart.render() }}
Использование Jinja для создания динамических карт на основе данных из источника данных:
{% set map_data = data.groupby('country')['sales'].sum() %}
{% set map = visualization.chart('map')
.set_data(map_data)
.set_map_provider('leaflet')
%}
{{ map.render() }}
Использование Jinja для создания динамических фильтров в отчетах.
{% for filter in filters %}
<select name="{{ filter.name }}">
{% for value in filter.values %}
<option value="{{ value }}">{{ value }}</option>
{% endfor %}
</select>
{% endfor %}
Использование Jinja для создания динамических графиков и визуализаций.
{% for chart in charts %}
<div id="{{ chart.id }}" class="chart"></div>
<script>
createChart('#{{ chart.id }}', {{ chart.data|tojson }}, {{ chart.options|tojson }});
</script>
{% endfor %}Источник: Блог superset-bi




