具有多个Tbobody的Python Dash DataTable

时间:2019-01-14 09:32:03

标签: python html css plotly-dash

我需要在动态更新的破折号DataTable中为选定的行添加乘号或某种ID,以便将来可以使用CSS隐藏它们。 有什么办法吗? jQuery不是一种选择,因为它在加载动态页面时效果不佳。因此,css hide()是唯一的选择,但是我无法像jQuery那样逐行查找所需的文本。 预先谢谢你!

1 个答案:

答案 0 :(得分:0)

import dash, random, datetime
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
import dash_table
import pandas as pd
from sqlalchemy.orm import sessionmaker
from models import Title, db_connect, create_table, Domain

columns= [column.key for column in Title.__table__.columns]

external_stylesheets = ['https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css']

engine = db_connect()
create_table(engine)
Session = sessionmaker(bind=engine)
session = Session()

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
app.scripts.append_script({"external_url": "https://code.jquery.com/jquery-3.3.1.js"})

app.layout = html.Div([
    dash_table.DataTable(
        id='datatable',
        columns=[{"name": i, "id": i} for i in columns],
        data=[],),
    dcc.Interval(
            id='interval-component',
            interval=1*5000, # in milliseconds
            n_intervals=0
    ),
],)


@app.callback(Output('datatable', 'data'),
              [Input('interval-component', 'n_intervals'),])
def update_metrics(n):
    query = session.query(Title).all()
    data = []
    for q in query:
        title = q.__dict__
        del title['_sa_instance_state']
        data.append(title)
    return data