plotly 获取 Dash 的当前路径名

Get the current pathname of Dash plotly

我想在 Dash 中打印并获取 URL 的当前路径,以便对过滤器进行操作。

我尝试使用 print(Input('url', 'pathname')) 但没有得到 URL.

有什么想法吗? 谢谢

Edit__________ :

我试过了,但我每秒都在获取路径名。如何停止它并只获取一次路径名?

html.Div(id='print')

@app.callback(
    Output('print', 'children'),
    [Input('url', 'pathname')])
def callback_func(pathname):
print(pathname)

如果没有您的其余代码,我不知道是什么触发了您的回调。 Input('url', 'pathname') 仅在加载 url 时触发回调。

from dash import Dash, html, dcc, Input, Output


app = Dash(__name__)
app.layout = html.Div([html.Div(id='print'), dcc.Location(id='url')])


@app.callback(
    Output('print', 'children'),
    [Input('url', 'pathname')])
def callback_func(pathname):
    print(pathname)
    return pathname


app.run_server()

如果您有其他输入可以触发您的回调,并且您只需要 url,那么您可以将类型从 Input 更改为 State。这使您可以在函数中将路径名作为变量访问,但永远不会触发回调:

from dash import Dash, html, dcc, Input, Output, State


app = Dash(__name__)
app.layout = html.Div([
    html.Div(id='print'),
    dcc.Location(id='url'),
    html.Button('print', id='button')
])


@app.callback(
    Output('print', 'children'),
    Input('button', 'n_clicks'),
    State('url', 'pathname'))
def callback_func(_, pathname):
    print(pathname)
    return pathname


app.run_server()