多页面,刚开始学,一些代码是网上代码改的。把回调部分去掉可以正常显示,加上后页面无显示,也没有什么报错
df = pd.read_csv('./dataset/cases_time.csv', low_memory=False)
df.loc[:, 'Last_Update'] = pd.to_datetime(df.loc[:, 'Last_Update'], format='%m/%d/%y')
def get_trend(country='China'):
countries = [country]
df_country = df[(df['Province_State'].isna()) & (df['Last_Update'] >= '2020-03-01')]
conf_data = df_country.pivot_table(index='Country_Region', columns='Last_Update', values='Confirmed', fill_value=0,
aggfunc='mean').loc[countries]
dead_data = df_country.pivot_table(index='Country_Region', columns='Last_Update', values='Deaths', fill_value=0,
aggfunc='mean').loc[countries]
fig = go.Figure()
fig.add_trace(
go.Scatter(
x=conf_data.columns.strftime('%Y-%m-%d').values.tolist(),
y=conf_data.loc[country].values.tolist(),
text=conf_data.loc[country].values.tolist(),
mode='lines+markers',
name='感染人数',
hoverinfo='all',
opacity=0.5
)
)
fig.add_trace(
go.Scatter(
x=dead_data.columns.strftime('%Y-%m-%d').values.tolist(),
y=dead_data.loc[country].values.tolist(),
text=dead_data.loc[country].values.tolist(),
mode='lines+markers',
name='死亡人数',
hoverinfo='all',
opacity=0.5
)
)
fig.update_layout(
title=dict(
text='国家疫情趋势图',
font={'size': 30},
x=0.5,
y=0.9
),
)
return fig
def get_layout(args):
return html.Div(children=[
html.Hr(),
html.P('中国及世界疫情状况'),
generate_cards(),
html.Hr(),
html.P('世界感染人数变化'),
dcc.Graph(figure=get_map()),
html.Hr(),
html.P('具体国家/地区疫情变化'),
dcc.Dropdown(id='dropdown', options=dropdown_list, value='China'),
dcc.Graph(id='graph2', figure=get_trend())
])
@app.callback(
Output('graph2', 'figure'),
[Input('dropdown', 'value')]
)
def update_graph2(country):
return get_trend(country)
运行后调试信息里只有GET,没有POST
问题更新:在我改了第二个页面的内容后,第一个页面的内容就正常了,回调也可以。现在暂时第二个页面无法显示。
暂时没啥问题了。我猜可能原本模板上第一页面和第二页面有关系,全删了之后就没问题了。。。