我目前正在創(chuàng)建一個(gè)在服務(wù)器上運(yùn)行的基于 Python- Bokeh的 webapp 應(yīng)用程序。在此應(yīng)用程序中,用戶可以預(yù)覽來(lái)自 pandas 數(shù)據(jù)框的數(shù)據(jù)(使用 BOKEH DATATABLE 顯示)并可以根據(jù)業(yè)務(wù)需要修改數(shù)據(jù)。刷新數(shù)據(jù)框后,用戶需要通過(guò)單擊 BOKEH BUTTON 小部件將數(shù)據(jù)框?qū)С龅剿谋镜叵到y(tǒng)(csv 格式) ?,F(xiàn)在我能夠創(chuàng)建 webapp 應(yīng)用程序,但是在將數(shù)據(jù)導(dǎo)出到本地系統(tǒng)時(shí)它會(huì)導(dǎo)致問(wèn)題。當(dāng)我單擊按鈕進(jìn)行下載時(shí),將下載一個(gè) csv 文件,其中包含數(shù)據(jù)框中的初始默認(rèn)數(shù)據(jù)。在那之后,即使我更新了數(shù)據(jù)框并再次單擊“下載”按鈕,也會(huì)下載相同的舊默認(rèn)數(shù)據(jù)而不是更新的數(shù)據(jù)框。下面是我最后嘗試的代碼。請(qǐng)建議,需要對(duì)以下代碼段進(jìn)行哪些更改,以便每次刷新數(shù)據(jù)并單擊下載按鈕時(shí),它都會(huì)導(dǎo)出數(shù)據(jù)表中顯示的最新數(shù)據(jù)。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);}
Python-Bokeh 應(yīng)用程序:無(wú)法通過(guò)單擊 Bokeh 按鈕小部件將更新的數(shù)據(jù)從 Webapp
BIG陽(yáng)
2023-01-04 11:25:36