Как обновить панель инструментов, используя DASH из библиотеки Python - PullRequest
0 голосов
/ 07 ноября 2019

Я использую пример тире из галереи тире ниже. ссылки https://dash -gallery.plotly.host / dash-financial-report /

Как я могу изменить этот файл приложения, чтобы автоматически обновлять таблицу тире, встроенную в одну страницу обратного вызова, чточитается из базы данных sqlAlchemy (не файл CSV, как в исходном файле)? Допустим, я обновляю таблицу каждые 5 минут, и приборная панель автоматически воссоздает таблицу .... Кроме того, мне нужен также обратный вызов для запроса базы данных каждые 5 минут ....

Руда Я могу создать кнопку«обновить», чтобы обновить хотя бы панель инструментов?

Как мы можем это сделать, используя Dash?

Заранее большое спасибо

С уважением.

    import dash
    import dash_core_components as dcc
    import dash_html_components as html
    from dash.dependencies import Input, Output
    from pages import (
        overview,
        pricePerformance,
        portfolioManagement,
        feesMins,
        distributions,
        newsReviews,
    )

    app = dash.Dash(
        __name__, meta_tags=[{"name": "viewport", "content": "width=device-width"}]
    )
    server = app.server

    # Describe the layout/ UI of the app
    app.layout = html.Div(
        [dcc.Location(id="url", refresh=False), html.Div(id="page-content")]
    )

    # Update page
    @app.callback(Output("page-content", "children"), [Input("url", "pathname")])
    def display_page(pathname):
        if pathname == "/dash-financial-report/price-performance":
            return pricePerformance.create_layout(app)
        elif pathname == "/dash-financial-report/portfolio-management":
            return portfolioManagement.create_layout(app)
        elif pathname == "/dash-financial-report/fees":
            return feesMins.create_layout(app)
        elif pathname == "/dash-financial-report/distributions":
            return distributions.create_layout(app)
        elif pathname == "/dash-financial-report/news-and-reviews":
            return newsReviews.create_layout(app)
        elif pathname == "/dash-financial-report/full-view":
            return (
                overview.create_layout(app),
                pricePerformance.create_layout(app),
                portfolioManagement.create_layout(app),
                feesMins.create_layout(app),
                distributions.create_layout(app),
                newsReviews.create_layout(app),
            )
        else:
            return overview.create_layout(app)


    if __name__ == "__main__":
        app.run_server(debug=True)

одна страница: https://github.com/plotly/dash-sample-apps/blob/master/apps/dash-financial-report/pages/overview.py

...