В настоящее время у меня есть инструментальная панель, которая позволяет пользователям экспортировать запрошенные данные в формате xlsx / csv, но сгенерированный файл застрял с данными, которые сначала запрашиваются первым пользователем. Если другой пользователь запрашивает свои собственные данные и пытается выполнить экспорт, он / она открывает загруженный файл и видит данные, запрашиваемые первым пользователем в другом экземпляре.
Я полагаю, это связано с глобальной переменной « queried_df », показанный ниже в моем фрагменте кода. Есть ли лучший способ поделиться / отправить данные из обратного вызова на сервер экспорта маршрутов?
Любые другие предложения приветствуются, спасибо!
@app.callback(
Output('tables', 'children'),
[Input("bom_1", "value"),
Input("bom_2", "value"),
Input("org_1", "value"),
Input("org_2", "value"),
Input("level", "value"),
Input('button', 'n_clicks')]
)
def update_tables(bom_1, bom_2, org_1, org_2, level, n_clicks):
global queried_df
if n_clicks == 0:
return dash.no_update
queried_df = bc.compare(bom_1, org_1, bom_2, org_2, level)
# perform other actions
return table
@app.server.route('/export/')
def download_excel():
strIO = io.BytesIO()
writer = pd.ExcelWriter(strIO, engine="xlsxwriter")
left = queried_df[0]
left.to_excel(writer, sheet_name='Sheet1', startrow=1)
excel_data = strIO.getvalue()
strIO.seek(0)
return send_file(strIO, attachment_filename='test.xlsx', as_attachment=True)