gpt4 book ai didi

python - 如何在多页应用程序上下载带有 plotly-dash 的文件?

转载 作者:行者123 更新时间:2023-12-04 10:14:46 26 4
gpt4 key购买 nike

我已经知道以下方法(链接 here):

server = Flask(__name__)
app = dash.Dash(server=server)


@server.route("/download/<path:path>")
def download(path):
"""Serve a file from the upload directory."""
return send_from_directory(UPLOAD_DIRECTORY, path, as_attachment=True)

但问题是,当我使用 Plotly 建议的多页方法时(链接 here(在“构建多页应用程序”下方 - index.py )):
    app.layout = html.Div([
dcc.Location(id='url', refresh=False),
html.Div(id='page-content')
])


@app.callback(Output('page-content', 'children'),
[Input('url', 'pathname')])
def display_page(pathname):
if pathname == '/apps/app1':
return app1.layout
elif pathname == '/apps/app2':
return app2.layout
else:
return '404'

我无法使用 server.route因为它会被 callback 捕获如上所示。

仍然可以下载文件的最佳方法是什么?

最佳答案

好的,我现在已经解决了。

documentation它说:

The dcc.Location component represents the location or address bar in your web browser.



所以我使用了一个带有下载选项的 html.A 元素。如前所述 here , download

Prompts the user to save the linked URL instead of navigating to it.



这意味着当用户单击链接时,它不会更改地址栏。因此, callback来自 display_page(pathname)未调用且链接指向 download(path) -方法通过 @server.route陈述。

关于python - 如何在多页应用程序上下载带有 plotly-dash 的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61124604/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com