DASH可编辑数据表实时更新

问题描述 投票:0回答:1

我试图使用回调为数据表做一个实时更新,这样当 "间隔 "触发时,更新的CSV文件被读取,新的列被添加到表中。我修改了可编辑数据表的添加列功能,以根据CSV文件中的最后一个值添加一个新列。脚本在前几列可以正常工作,然后页面刷新(?),数据表被清除,只显示最后一列。我不能完全理解发生了什么。有什么见解吗?(为了简单起见,我在下面的节选中省略了 "dcc.Interval")

table_contents = ['Infusion', 'Infusion', 'Fentanyl (ug)', 'Versed (mg)','Propofol (mg)', 'Remi (ug)', 'Ketorolac (mg)', 'Dex (mg)', 'Roc (mg)', 'Neo/Gly (mg/mg)']
 html.Div([dash_table.DataTable(
        id='editing-columns',
        columns=[{
                'name': 'Parameter',
                'id': 'column1',
                'deletable': True,
                'renamable': True
        }],
        style_cell={
                'whiteSpace': 'normal',
                'height': 'auto',
                'textAlign': 'left',
    },
        data=[
                {'column1': j}
                for j in table_contents
        ],
        editable=True,
    )], className="drug_input"),
@app.callback(Output('editing-columns', 'columns'),
              [Input('graph-update', 'n_intervals')],
              [State('editing-columns', 'columns')])
def update_columns(n, existing_columns):
    check_length = []

    with open('assets' + '/' + 'record ' + str(current) + '.csv', 'r') as rf:
        reader = csv.reader(rf)
        for a in reader:
            check_length.append(a[3])

    existing_columns.append({
            'id': check_length[-1], 'name': check_length[-1],
            'renamable': True, 'deletable': True
            })

    return existing_columns
``
python plotly hyphen
1个回答
0
投票

"热重载 "是问题的原因。一旦DASH检测到 "assets "文件夹中的脚本或文件发生变化,浏览器就会被刷新,因此,我的数据战被重置。一旦 "热重载 "被关闭,一切都会好起来。

dev_tools_hot_reload=False
© www.soinside.com 2019 - 2024. All rights reserved.