python-3.x – 如何使用Dash在包含大型数据帧的数据表中提供分页

我目前正在使用dash-1.0.1.我正在创建一个公共仪表板,它以数据表的形式返回详细报告.但是数据表很大我想为数据表提供分页功能,并显示[no of entries]下拉列表以显示页面上表格中的条目数.

有没有什么方法可以实现这一目标?

最佳答案 似乎使用pagination_settings参数将分页选项添加到DataTable类.

根据here给出的示例,我创建了一个带有分页的DataTable的工作演示,并使用下拉列表选择条目数:

import dash
from dash.dependencies import Input, Output
import dash_table
import dash_html_components as html
import dash_core_components as dcc
import pandas as pd

df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/gapminder2007.csv')
df[' index'] = range(1, len(df) + 1)
app = dash.Dash(__name__)
PAGE_SIZE = 15

app.layout = html.Div([
    html.Div('Data table pagination test'),
    dcc.Dropdown(
        id='select_page_size',
        options=[{'label': '5', 'value': 5}, {'label': '10', 'value': 10}, {'label': '15', 'value': 15}],
        value=5
    ),
    html.Div(dash_table.DataTable(
        id='datatable-paging',
        columns=[{"name": i, "id": i} for i in df.columns],
        data=df.to_dict("rows"),
        pagination_settings={
            'current_page': 0,
            'page_size': PAGE_SIZE
        },
    ))
])

@app.callback(
    Output('datatable-paging', 'pagination_settings'),
    [Input('select_page_size', 'value')])
def update_graph(page_size):
    return {
        'current_page': 0,
        'page_size': page_size
    }

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

结果:

《python-3.x – 如何使用Dash在包含大型数据帧的数据表中提供分页》

点赞