Here is what I was able to come up with. Am I on the right track?
#app layout
#------------------------------------------------------
#Dropdown menus
#------------------------------------------------------
app = dash.Dash(__name__)
app.layout = html.Div([
html.Div([
html.Div([
dcc.Dropdown(id='applicationdropdown',
options=[{'label':x, 'value':x} for x in dff.sort_values('Application')['Application'].unique()],
value='FAF',
multi=False,
clearable=False
),
],className='six columns'),
html.Div([
dcc.Dropdown(id='serverdropdown',
options=[{'label':x, 'value':x} for x in dff.sort_values('Server')['Server'].unique()],
value='SRV303',
multi=False,
clearable=False
),
],className='six columns'),
html.Div([
dcc.Dropdown(id='benchmarkdropdown',
options=[{'label':x, 'value':x} for x in dff.sort_values('Release Date')['Release Date'].unique()],
value='windows2012',
multi=False,
clearable=False
),
],className='six columns'),
html.Div([
dcc.Dropdown(id='releasedatedropdown',
options=[{'label':x, 'value':x} for x in dff.sort_values('STIG')['STIG'].unique()],
value='21-08-15',
multi=False,
clearable=False
),
],className='six columns'),
],className='row'),
#Pie charts
#------------------------------------------------------
html.Div([
html.Div([
html.H4('Status Results 1'),
dcc.Graph(id='peichart1'),
],className='six columns'),
html.Div([
html.H4('Status Results 2'),
dcc.Graph(id='peichart2'),
],className='six columns'),
],className='row'),
]) #end of app layout div
#dashboard callouts
#------------------------------------------------------
@app.callback(
Output("peichart1", "figure"),
Output("piechart2", "figure"),
[
Input("applicationdropdown", "value"),
Input("serverdropdown", "value"),
Input("benchmarkdropdown", "value"),
Input("releasedatedropdown", "value")
]
)
def update_graphs(application, server, benchmark, release_date):
if application is None or server is None or benchmark is None or release_date is None:
raise PreventUpdate
df_subset = df.query("Application == @application & # ....")
fig1 = px.pie(df_subset, # ...)
fig2 = px.pie(df_subset, # ...)
return fig1, fig2
if __name__ == '__main__':
app.run_server(debug=True)