破折号上带有按钮功能的回调
callback with button feature on dash
我有一个布局相当简单的 dash 应用程序。这是我第一次使用破折号,所以希望有人能在这里帮助我。
我想要做的是让应用程序用户输入 5 个特征,然后单击提交按钮,该按钮将调用一个函数来 return 基于这 5 个特征的图表。
我目前的代码是:
app = dash.Dash()
app.layout = html.Div(children=[
html.H1(children='Regression Analyzer for Individual Market Securities', style={'textAlign': 'center'
}),
html.Div([
dcc.DatePickerRange(
id = 'my-date',
min_date_allowed=datetime(2015, 1, 1),
max_date_allowed=datetime(2020, 11, 11),
initial_visible_month=datetime(2017, 8, 5),
start_date=str(datetime(2015, 11, 1)),
end_date=str(datetime(2020, 11, 1)))
]),
html.Div([
dcc.Dropdown(id = 'MA',
options=[
{'label': 'Day Average', 'value': 'Day Average'},
{'label': '7 Day Avg', 'value': '7 Day Avg'},
{'label': '50 Day Avg', 'value': '50 Day Avg'},
{'label': '200 Day Avg', 'value': '200 Day Avg'}
])]),
html.Div([
dcc.Input(id = 'Name',
placeholder='Enter stock ticker ...',
type='text',
value='AAPL')
]),
html.Div([
dcc.Slider(id = 'err',
min=0,
max=100,
step=0.5,
value=10)
])
])
@app.callback()
def compare_to_market1():
return compare_to_market()
函数 'compare_to_market1' 应该调用的特征是:start_date、end_date、名称、MA 和错误。
如您所见,compare_to_market1 调用了函数 compare_to_market,我宁愿这样保留,因为后一个函数很长,但如果需要。
主要是我显然不知道如何设置 app.callback 功能来获取正确的输入并将它们传递给 compare_to_market1 我想要 运行 的函数.
感谢任何帮助。
所以您想在发生任何变化时调用回调。
您很可能不想使用 datetime 但 date.
通过调用 print 替换对 compare_to_market 的调用,以便能够执行以下代码并查看调用回调:
from datetime import date
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
app = dash.Dash()
app.layout = html.Div(children=[
html.H1(children='Regression Analyzer for Individual Market Securities', style={'textAlign': 'center'
}),
html.Div([
dcc.DatePickerRange(
id = 'my-date',
min_date_allowed=date(2015, 1, 1),
max_date_allowed=date(2020, 11, 11),
initial_visible_month=date(2017, 8, 5),
start_date=str(date(2015, 11, 1)),
end_date=str(date(2020, 11, 1)))
]),
html.Div([
dcc.Dropdown(id = 'MA',
options=[
{'label': 'Day Average', 'value': 'Day Average'},
{'label': '7 Day Avg', 'value': '7 Day Avg'},
{'label': '50 Day Avg', 'value': '50 Day Avg'},
{'label': '200 Day Avg', 'value': '200 Day Avg'}
])]),
html.Div([
dcc.Input(id = 'Name',
placeholder='Enter stock ticker ...',
type='text',
value='AAPL')
]),
html.Div([
dcc.Slider(id = 'err',
min=0,
max=100,
step=0.5,
value=10)
]),
html.Div(id='my-output')
])
@app.callback(
Output(component_id='my-output', component_property='children'),
[dash.dependencies.Input("my-date", "start_date"),
dash.dependencies.Input("my-date", "end_date"),
dash.dependencies.Input("Name", "value"),
dash.dependencies.Input("MA", "value"),
dash.dependencies.Input("err", "value")])
def compare_to_market1(startDate, endDate, name, ma, err):
print(startDate, endDate, name, ma, err)
if __name__ == '__main__':
app.run_server(debug=True)
我有一个布局相当简单的 dash 应用程序。这是我第一次使用破折号,所以希望有人能在这里帮助我。
我想要做的是让应用程序用户输入 5 个特征,然后单击提交按钮,该按钮将调用一个函数来 return 基于这 5 个特征的图表。
我目前的代码是:
app = dash.Dash()
app.layout = html.Div(children=[
html.H1(children='Regression Analyzer for Individual Market Securities', style={'textAlign': 'center'
}),
html.Div([
dcc.DatePickerRange(
id = 'my-date',
min_date_allowed=datetime(2015, 1, 1),
max_date_allowed=datetime(2020, 11, 11),
initial_visible_month=datetime(2017, 8, 5),
start_date=str(datetime(2015, 11, 1)),
end_date=str(datetime(2020, 11, 1)))
]),
html.Div([
dcc.Dropdown(id = 'MA',
options=[
{'label': 'Day Average', 'value': 'Day Average'},
{'label': '7 Day Avg', 'value': '7 Day Avg'},
{'label': '50 Day Avg', 'value': '50 Day Avg'},
{'label': '200 Day Avg', 'value': '200 Day Avg'}
])]),
html.Div([
dcc.Input(id = 'Name',
placeholder='Enter stock ticker ...',
type='text',
value='AAPL')
]),
html.Div([
dcc.Slider(id = 'err',
min=0,
max=100,
step=0.5,
value=10)
])
])
@app.callback()
def compare_to_market1():
return compare_to_market()
函数 'compare_to_market1' 应该调用的特征是:start_date、end_date、名称、MA 和错误。
如您所见,compare_to_market1 调用了函数 compare_to_market,我宁愿这样保留,因为后一个函数很长,但如果需要。
主要是我显然不知道如何设置 app.callback 功能来获取正确的输入并将它们传递给 compare_to_market1 我想要 运行 的函数.
感谢任何帮助。
所以您想在发生任何变化时调用回调。
您很可能不想使用 datetime 但 date.
通过调用 print 替换对 compare_to_market 的调用,以便能够执行以下代码并查看调用回调:
from datetime import date
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
app = dash.Dash()
app.layout = html.Div(children=[
html.H1(children='Regression Analyzer for Individual Market Securities', style={'textAlign': 'center'
}),
html.Div([
dcc.DatePickerRange(
id = 'my-date',
min_date_allowed=date(2015, 1, 1),
max_date_allowed=date(2020, 11, 11),
initial_visible_month=date(2017, 8, 5),
start_date=str(date(2015, 11, 1)),
end_date=str(date(2020, 11, 1)))
]),
html.Div([
dcc.Dropdown(id = 'MA',
options=[
{'label': 'Day Average', 'value': 'Day Average'},
{'label': '7 Day Avg', 'value': '7 Day Avg'},
{'label': '50 Day Avg', 'value': '50 Day Avg'},
{'label': '200 Day Avg', 'value': '200 Day Avg'}
])]),
html.Div([
dcc.Input(id = 'Name',
placeholder='Enter stock ticker ...',
type='text',
value='AAPL')
]),
html.Div([
dcc.Slider(id = 'err',
min=0,
max=100,
step=0.5,
value=10)
]),
html.Div(id='my-output')
])
@app.callback(
Output(component_id='my-output', component_property='children'),
[dash.dependencies.Input("my-date", "start_date"),
dash.dependencies.Input("my-date", "end_date"),
dash.dependencies.Input("Name", "value"),
dash.dependencies.Input("MA", "value"),
dash.dependencies.Input("err", "value")])
def compare_to_market1(startDate, endDate, name, ma, err):
print(startDate, endDate, name, ma, err)
if __name__ == '__main__':
app.run_server(debug=True)