从 dash python 中的 url 获取参数:此 ID 分配给布局中的 dash_core_components.Location 组件,不支持属性
Posted
技术标签:
【中文标题】从 dash python 中的 url 获取参数:此 ID 分配给布局中的 dash_core_components.Location 组件,不支持属性【英文标题】:Get parameters from url in dash python: This ID is assigned to a dash_core_components.Location component in the layout,which does not support property 【发布时间】:2021-12-23 02:05:30 【问题描述】:以下是我的代码:
我想从url中获取参数并在网页中打印出来。
例如, http://127.0.0.1:8051/random?xaxis=log&yaxis=log 是我的网址。
我想打印网页中的路径名,而我现在返回为 None。我哪里错了。
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
app = dash.Dash(__name__)
app.layout = html.Div([
dcc.Location(id='url', refresh=False),
html.Br(),
html.Div(id='my-output')])
@app.callback(
Output(component_id='my-output', component_property='children'),
Input(component_id='url', component_property='value'))
def update_output_div(value):
return html.Div([
html.H1('path is '.format(str(value)))
])
if __name__ == '__main__':
app.run_server(debug=True, port= 8051)
我得到的输出为
enter image description here
【问题讨论】:
【参考方案1】:在浏览器中输入网址http://127.0.0.1:8051/random?param1=cat¶m2=dog
将显示猫和狗
import dash
from dash import dcc
from dash import html
from dash.dependencies import Input, Output
from furl import furl
app = dash.Dash(__name__)
app.config.suppress_callback_exceptions = True
app.layout = html.Div([
# represents the URL bar, doesn't render anything
dcc.Location(id='url', refresh=False),
# content will be rendered in this element
html.Div(id='content'),
])
@app.callback(Output('content', 'children'),
[Input('url', 'href')])
def _content(href: str):
f = furl(href)
param1= f.args['param1']
param2= f.args['param2']
return html.H1(children=param1: param1 param2: param2' )
if __name__ == '__main__':
app.run_server(debug=True, port= 8051)
【讨论】:
以上是关于从 dash python 中的 url 获取参数:此 ID 分配给布局中的 dash_core_components.Location 组件,不支持属性的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 Python 中的 Plotly 从 Dash 的下拉列表中选择数据集列?
Python Dash Basic Auth - 在应用程序中获取用户名