在我的应用程序中使用 DataTable
Using a DataTable with my app
我正在使用 Dash 通过 python 构建仪表板。我有以下代码:
import dash
import dash_core_components as dcc
import dash_table_experiments as dte
import dash_html_components as html
from datetime import datetime as dt
app = dash.Dash()
app.layout = html.Div([
dcc.Location(id = 'url', refresh=False),
html.Div(id = 'page-content')
])
app.config['suppress_callback_exceptions'] = True
def get_index():
index = html.Div([
dcc.Link('Live Data', href='/live')
], className = 'row')
return index
live = html.Div([
html.H1('Table '),
dcc.DatePickerRange(
id = 'selected-period',
initial_visible_month=dt(2018, 4, 5),
start_date = dt(2018, 4, 22),
end_date=dt(2018, 4, 25)
),
# dte.DataTable(
# rows= [{}],
# row_selectable = True,
# filterable = True,
# sortable = True,
# editable = False,
# id = 'data-table'
# )
])
@app.callback(
dash.dependencies.Output('page-content', 'children'),
[dash.dependencies.Input('url', 'pathname')]
)
def display_correct_page(pathname):
if pathname == '/live':
return live
else:
return get_index()
if __name__ == '__main__':
app.run_server(debug=True)
我想使用 dash_core_components.Link
,但它似乎与 dash_table_experiments
不兼容。当我 运行 这段带有 dte.DataTable
的代码被注释掉时,应用程序运行正常。当我尝试 运行 带有 dte.DataTable
部分的应用程序时,出现白屏。我不明白为什么会这样,因为我之前使用过 dte.DataTable
并且我没有任何问题。问题似乎在于我正在使用 dcc.Link
但我不明白为什么会这样。
问题:有没有办法把dte.DataTable
和dcc.Links
一起使用?如果是这样;如何更改我的脚本以使其显示所需的数据表?
(我知道我可以通过删除 dcc.Link
部分并将它 运行 像一个非常基本的应用程序一样运行来使这个脚本工作。我希望能够使用 link 因为我想用 dte.DataTable
组合两个不同的应用程序。)
破折号 expects 初始 layout
包含所有组件,即您需要在布局中创建一个空的 table。
如果添加隐藏table
html.Div(dte.DataTable(rows=[{}]), style={'display': 'none'}),
你的 app.layout
它应该可以工作。
很好的回答@maximilian。如果这对任何人都有帮助,在过去两年中 Dash DataTable 发生了很多变化,所以这是我在 DataTable 上制作的教程,可以帮助人们入门。 https://youtu.be/USTqY4gH_VM
我正在使用 Dash 通过 python 构建仪表板。我有以下代码:
import dash
import dash_core_components as dcc
import dash_table_experiments as dte
import dash_html_components as html
from datetime import datetime as dt
app = dash.Dash()
app.layout = html.Div([
dcc.Location(id = 'url', refresh=False),
html.Div(id = 'page-content')
])
app.config['suppress_callback_exceptions'] = True
def get_index():
index = html.Div([
dcc.Link('Live Data', href='/live')
], className = 'row')
return index
live = html.Div([
html.H1('Table '),
dcc.DatePickerRange(
id = 'selected-period',
initial_visible_month=dt(2018, 4, 5),
start_date = dt(2018, 4, 22),
end_date=dt(2018, 4, 25)
),
# dte.DataTable(
# rows= [{}],
# row_selectable = True,
# filterable = True,
# sortable = True,
# editable = False,
# id = 'data-table'
# )
])
@app.callback(
dash.dependencies.Output('page-content', 'children'),
[dash.dependencies.Input('url', 'pathname')]
)
def display_correct_page(pathname):
if pathname == '/live':
return live
else:
return get_index()
if __name__ == '__main__':
app.run_server(debug=True)
我想使用 dash_core_components.Link
,但它似乎与 dash_table_experiments
不兼容。当我 运行 这段带有 dte.DataTable
的代码被注释掉时,应用程序运行正常。当我尝试 运行 带有 dte.DataTable
部分的应用程序时,出现白屏。我不明白为什么会这样,因为我之前使用过 dte.DataTable
并且我没有任何问题。问题似乎在于我正在使用 dcc.Link
但我不明白为什么会这样。
问题:有没有办法把dte.DataTable
和dcc.Links
一起使用?如果是这样;如何更改我的脚本以使其显示所需的数据表?
(我知道我可以通过删除 dcc.Link
部分并将它 运行 像一个非常基本的应用程序一样运行来使这个脚本工作。我希望能够使用 link 因为我想用 dte.DataTable
组合两个不同的应用程序。)
破折号 expects 初始 layout
包含所有组件,即您需要在布局中创建一个空的 table。
如果添加隐藏table
html.Div(dte.DataTable(rows=[{}]), style={'display': 'none'}),
你的 app.layout
它应该可以工作。
很好的回答@maximilian。如果这对任何人都有帮助,在过去两年中 Dash DataTable 发生了很多变化,所以这是我在 DataTable 上制作的教程,可以帮助人们入门。 https://youtu.be/USTqY4gH_VM