亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Dash:跨頁面具有相同數據的多頁面應用程序

Dash:跨頁面具有相同數據的多頁面應用程序

喵喵時光機 2023-08-08 16:51:33
我的問題是,數據總共位于四個數據幀中,并且我的應用程序中的三個頁面中的每一頁都使用其中多個數據幀來可視化內容。我試圖避免每次調用其中一個頁面時都重新加載數據幀。這可能嗎?如何?目前,我嘗試首先使用 index.py 中的函數加載 df,然后加載其他頁面:df_fz, df_md, df_auf, df_mat = get_dfs()from apps import app1, app2, app3[...]@app.callback(Output('page-content', 'children'),? ? ? ? ? ? ? [Input('url', 'pathname')])def display_page(pathname):? ? if pathname == '/app1':? ? ? ? return app1.layout? ? elif pathname == '/app2':? ? ? ? return app2.layout? ? else:? ? ? ? return app3.layoutapp1 到 app3 中的每一個都使用數據幀,就好像它們是在腳本頂部加載的一樣,但此代碼按原樣拋出錯誤,因為 df 未定義。app3 的一個最小示例:layout = html.Div([? ? html.H3('App 3'),? ? dcc.Dropdown(? ? ? ? id='app-3-dropdown',? ? ? ? options=[? ? ? ? ? ? {'label': 'App 3 - {}'.format(i), 'value': i} for i in [df_fz.Value]? ? ? ? ]? ? ),? ? html.Div(id='app-3-display-value'),])@app.callback(? ? Output('app-3-display-value', 'children'),? ? [Input('app-3-dropdown', 'value')])def display_value(value):? ? return 'You have selected "{}" but in App 3'.format(value)
查看完整描述

3 回答

?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

看起來您需要做的就是創建一個模塊,其中包含可以在不同文件之間共享的數據。

data.py

import pandas as pd
df1 = pd.DataFrame()

app1.py

from data import df1

app2.py

from data import df1

模塊變量是全局變量,因此所有文件都將共享相同的 df1,并且由于它是導入,因此它將在 app、app1 等中的其余代碼之前運行。

您還可以在開頭保留 id='app-3-dropdown', options=[] ,然后創建選項列表作為 'app-3-dropdown' 的回調。

您可以將數據幀存儲在 dcc.Store(id='df-data', data=df.to_dict()) 中,并且可以用作其他回調的輸入或狀態。


查看完整回答
反對 回復 2023-08-08
?
富國滬深

TA貢獻1790條經驗 獲得超9個贊

嘗試將數據幀放入數據集文件夾中,并將它們連接到每個應用程序頁面中。像這樣的東西:

PATH?=?pathlib.Path(__file__).parent
DATA_PATH?=?PATH.joinpath("../datasets").resolve()
df?=?pd.read_csv(DATA_PATH.joinpath("mydata.csv"))


查看完整回答
反對 回復 2023-08-08
?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

以下文件結構-

-?app.py
-?index.py
-?apps
???|--?__init__.py
???|--?app1.py
???|--?app2.py

嘗試這種讀取“app.py”文件中的數據幀的方法。由于每個“app1.py”、“app2.py”、“app3.py”都使用這些數據幀,因此請在這些文件中導入 df,即在“app1.py”代碼中:

from?app?import?app
from?app?import?df_fz,?df_md,?df_auf,?df_mat

對于其他文件也是如此。


查看完整回答
反對 回復 2023-08-08
  • 3 回答
  • 0 關注
  • 256 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號