我正在使用Dash创建Web应用程序。在这种情况下,我必须使用下拉/单选按钮从用户那里获取值,并且需要根据用户输入来显示数据。我可以使用dcc.Dropdown将下拉列表合并到我的应用程序中,但是需要知道如何将所选下拉列表的值存储在变量中。
您想为上述用户输入创建回调:
import dash_core_components as dcc
import dash_html_components as html
from dash.exceptions import PreventUpdate
import dash
from dash.dependencies import Input, Output
app = dash.Dash(__name__)
app.layout = html.Div(
children=[
html.H1('Select an Option from Below:'),
# First create your interact with a specific classname
dcc.RadioItems(
className = 'radio-items',
id='radio-items',
options=[{'label':x,'value':x} for x in ['Item 1', 'Item 2','Item 3']],
),
html.Div(
id = 'user-output',
children = 'Please select a value from the dropdown menu',
)
]
)
# Now create a callback
@app.callback(
Output('user-output','children'),
[Input('radio-items','value')])
def update_user_output(value_select):
"""
Callback to make app interactive
"""
# Don't update if the user hasn't selected anything
if value_select is None:
raise PreventUpdate
# return the value
return f'You\'ve selected {value_select}'
if __name__ == '__main__':
app.run_server()
棘手的部分是利用回调或回调的值进行其他操作。为此,我建议您要么使用指定的交互项创建多个回调,要么将此交互的值存储在内存输出对象(在大多数情况下不建议使用)>]。