在回调中,根据用户输入创建数据框。我需要在另一个函数中使用该数据框,以便将其提供给用户。 我读到server.route可以通过Flask SendFile做到这一点,但由于无法使用全局变量,因此无法访问数据框。
我已经阅读了一个隐藏的div方法,但是我不知道如何从python内部访问html div属性。
'''
server = flask.Flask('app')
app = dash.Dash(__name__,
external_stylesheets=external_css,
server=server)
master = pd.read_csv('master_dataframe.csv')
@server.route("/downloadable/")
def download_file():
df = # The dataframe I need that is in the other function
buffer = io.BytesIO()
dff.to_excel(buffer) # write to BytesIO buffer
buffer.seek(0)
return send_file(
buffer,
attachment_filename='data.xlsx',
as_attachment=True,
cache_timeout=0
)
@app.callback(
Output('plot_button','n_clicks_timestamp'),
[Input('account_selector','value')]
)
def generate_layout(value):
df = make_something(master, value)
return html_layout
'''
答案 0 :(得分:0)
您可以将数据帧的内容以JSON格式输出到带有children
的{{1}}的{{1}}道具。然后使用另一个带有该div
的{{1}}作为其display='none'
的回调,您将能够读取JSON并使用该数据。
简单示例:
children