【问题标题】:How to make filtering non model data in flask-admin如何在flask-admin中过滤非模型数据
【发布时间】:2019-06-29 05:29:09
【问题描述】:

我必须在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。不知道从哪里开始。

【问题讨论】:

    标签: flask flask-admin


    【解决方案1】:

    您应该使用WTForms 来构建表单。然后,您必须决定是要在提交时获取数据还是不重新加载页面。在前一种情况下,您可以在响应页面in your statistics_charts view 上返回获取的信息。但是,如果您希望在不重新加载的情况下更新数据,则需要使用 JavaScript 来跟踪表单字段更改,将 AJAX 请求发送到 API,然后解释生成的 JSON 并根据需要更新仪表板图形和表格。

    我没有使用过它,但本教程说您可以使用Dash 完成此任务的大部分内容,同时主要使用 Python 编写。所以这可能是要检查的东西。还有flask_jsondash 可能对你有用。

    【讨论】:

      猜你喜欢
      • 2015-05-03
      • 1970-01-01
      • 2022-01-01
      • 2019-12-04
      • 2020-01-02
      • 2015-12-01
      • 2015-09-16
      • 1970-01-01
      相关资源
      最近更新 更多