我必须在flask-admin中创建类似于视图的仪表板,该仪表板将使用从外部API检索的数据。我已经编写了一个获取日期范围并从该范围返回数据的函数。我可能应该使用BaseView
,但我不知道如何实际编写它以使过滤器正常工作。这是我必须使用的示例函数:charts = generate_data_for_dashboard('164', '6423FACA-FC71-489D-BF32-3A671AB747E3', '2018-03-01', '2018-09-01')
。这些参数应从3个不同的下拉菜单中选择。到目前为止,我只知道如何使用这样的预编码数据呈现视图:
class DashboardView(BaseView):
kwargs = {}
@expose('/', methods=('GET',))
def statistics_charts(self):
user = current_user
company = g.company
offices = Office.query.filter_by(company_id=company.id)
self.kwargs['user'] = user
self.kwargs['company'] = company
charts = generate_data_for_dashboard('164', '6423FACA-FC71-489D-BF32-3A671AB747E3', '2018-03-01', '2018-09-01')
self.kwargs['chart1'] = charts[0]
self.kwargs['chart2'] = charts[1]
return self.render('stats/dashboard.html', **self.kwargs)
但是我需要某种形式的过滤器。此外,日期过滤条件下拉菜单应具有动态选项:current_week, last_week, current_month, last_month, last_year
。不知道从哪里开始。
答案 0 :(得分:0)
您应该使用WTForms来构建表单。然后,您必须决定是要在“提交”中获取数据还是要不重新加载页面。在前一种情况下,您可以仅在响应页面in your statistics_charts view上返回获取的信息。但是,如果您希望不重新加载就更新数据,则需要使用JavaScript来跟踪表单字段更改,将AJAX请求发送到API,然后解释生成的JSON并根据需要更新仪表板图和表。
我还没有使用过它,但是本教程说,您可以使用Dash来完成此任务的大部分时间,而大多数时间都是用Python编写的。因此,这可能是需要检查的东西。还有flask_jsondash可能对您有用。