from datetime import datetime, timedelta
from jinja2 import Markup
def date_range_filter(start_date, end_date):
# Superset使用形如“__start_ts()”和“__end_ts()”的字符串作为起始和结束时间戳参数。
start_ts = datetime.strptime(start_date, '%Y-%m-%d').timestamp()
end_ts = datetime.strptime(end_date, '%Y-%m-%d').timestamp() + (24 * 60 * 60 - 1)
date_range = f'{start_ts} : {end_ts}'
return Markup(date_range)
app.jinja_env.filters['date_range'] = date_range_filter
{{ filter_values | safe | join(' , ') }} (date_dimension: "{% if date_range %}{{ date_range(start_date, end_date) }}{% endif %}")
其中,“filter_values”是必需的过滤器值,例如包含选定的度量标准和分组的名称,可以在Superset的界面上进行选择。 “date_dimension”是您要过滤的日期维度的名称,例如“created_at”,并使用上述代码中定义的“date_range”引用Jinja过滤器。 5. 其他提示: