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

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

Python-Bokeh 應用程序:無法通過單擊 Bokeh 按鈕小部件將更新的數據從 Webapp

Python-Bokeh 應用程序:無法通過單擊 Bokeh 按鈕小部件將更新的數據從 Webapp

BIG陽 2023-01-04 11:25:36
我目前正在創建一個在服務器上運行的基于 Python- Bokeh的 webapp 應用程序。在此應用程序中,用戶可以預覽來自 pandas 數據框的數據(使用 BOKEH DATATABLE 顯示)并可以根據業務需要修改數據。刷新數據框后,用戶需要通過單擊 BOKEH BUTTON 小部件將數據框導出到他的本地系統(csv 格式) ?,F在我能夠創建 webapp 應用程序,但是在將數據導出到本地系統時它會導致問題。當我單擊按鈕進行下載時,將下載一個 csv 文件,其中包含數據框中的初始默認數據。在那之后,即使我更新了數據框并再次單擊“下載”按鈕,也會下載相同的舊默認數據而不是更新的數據框。下面是我最后嘗試的代碼。請建議,需要對以下代碼段進行哪些更改,以便每次刷新數據并單擊下載按鈕時,它都會導出數據表中顯示的最新數據。from bokeh.io import curdocfrom bokeh.models import ColumnDataSource, CustomJSfrom bokeh.models.widgets import DataTable, NumberFormatter, TableColumn, Buttonfrom bokeh.layouts import column,rowimport pandas as pdimport numpy as np# Create Default datadata = {'COL_1_DEFAULT': np.random.randint(200, size=100),        'COL_2_DEFAULT': np.random.randint(200, size=100),        'COL_3_DEFAULT': np.random.randint(200, size=100),        'COL_4_DEFAULT': np.random.randint(200, size=100)}TABLE1_DATA = pd.DataFrame(data)source_new = ColumnDataSource(TABLE1_DATA)Columns_tab1 = [TableColumn(field=Ci, title=Ci) for Ci in TABLE1_DATA.columns] # bokeh columnsdata_table1 = DataTable(columns=Columns_tab1, source=source_new,height = 200) # Javascript for exporting datajs_code="""var data = source.data;var columns = Object.keys(source.data);var filetext = [columns.join(',')].shift().concat('\\n');var nrows = source.get_length();for (let i=0; i < nrows; i++) {        let currRow = [];        for (let j = 0; j < columns.length; j++) {            var column = columns[j]            currRow.push(source.data[column][i].toString())            }        currRow = currRow.concat('\\n')        var joined = currRow.join();        filetext = filetext.concat(joined);        }var filename = 'data_output.csv';var blob = new Blob([filetext], { type: 'text/csv;charset=utf-8;' });//addresses IEif (navigator.msSaveBlob) {navigator.msSaveBlob(blob, filename);}
查看完整描述

1 回答

?
慕沐林林

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

這是一個錯誤。我剛剛創建了https://github.com/bokeh/bokeh/issues/10146

作為解決方法,更換

Exportbutton.js_on_click(CustomJS(args=dict(source=ColumnDataSource(df)),code = js_code  ))

Exportbutton.js_event_callbacks['button_click'] = [CustomJS(args=dict(source=ColumnDataSource(df)), code=js_code)]



查看完整回答
反對 回復 2023-01-04
  • 1 回答
  • 0 關注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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