我是新的冲刺,并试图使一个基本的表显示在一个IP上的每个人看。这样就不需要电子邮件或将数据放在任何特定的地方。我使用下面的代码创建一个从文档中提取的非常简单的仪表板表,但是我希望定期更新仪表板。我通过使用任务调度器每30分钟运行一次代码来实现这一点,杀死旧实例。这样的话数据.csv'时,表中将显示一个新的数据帧。你知道吗
import dash
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
df = pd.read_csv('data.csv')
def generate_table(dataframe, max_rows=30):
return html.Table(
# Header
[html.Tr([html.Th(col) for col in dataframe.columns])] +
# Body
[html.Tr([
html.Td(dataframe.iloc[i][col]) for col in dataframe.columns
]) for i in range(min(len(dataframe), max_rows))]
)
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
app.layout = html.Div(children=[
html.H4(children='Title'),
generate_table(df, max_rows=len(df))
])
if __name__ == '__main__':
ADDRESS='100.100.100.100' #ipv4 address for computer code is run on
PORT=int(1000)
app.run_server(debug=True, host=ADDRESS, port=PORT)
我的问题是,尽管重新启动实例并更改csv,但只会显示原始csv数据。我只能通过改变端口和启动一个新的应用程序来修复它,这不是我想要的选项。如何让同一个应用程序更新新的csv信息?你知道吗
我认为你不需要杀死“旧”的应用程序实例,每隔几分钟运行一个新的。您只需启动一次应用程序,并将“更新间隔”设置为所需的时间(以毫秒为单位),以便应用程序在回调函数中下载新数据,同时保持运行。你知道吗
此代码演示了这一点(Dash v1.6.0):
相关问题 更多 >
编程相关推荐