如何将破折号输入保存为全局变量

Posted

技术标签:

【中文标题】如何将破折号输入保存为全局变量【英文标题】:How to save plotly dash Input as global variable 【发布时间】:2020-05-01 13:28:08 【问题描述】:

我正在使用 Plotly Dash 创建一个仪表板,该仪表板需要按日期过滤数据(滑块不起作用,因为某些图表是分类的)。

我想允许用户输入一个日期,然后我将其用作全局变量。我导入这个全局变量来过滤我在其他 python 文件中的数据框,然后创建图表。我在下面的尝试不起作用;变量start_date 不会更新。

app = dash.Dash()

app.layout = html.Div([
    dcc.Input(id='date', value='start date (yyyy-mm-dd)', type='text'),
    html.Button(id='submit-button', type='submit', children='Submit'),
    html.Div(id='output_div')
])

start_date = 0

@app.callback(Output('output_div', 'children'),
                [Input('submit-button', 'n_clicks')],
                [State('date', 'value')],
                )
def update_output(clicks, input_value):
    if clicks:
        print(clicks, input_value)
        global start_date
        start_date = datetime.strptime(input_value, '%Y-%m-%d').date()
        return start_date
        print(type(start_date))


if __name__ == '__main__':
    app.run_server(debug=True, port=8051)

【问题讨论】:

【参考方案1】:

我不确定你的最终目标是什么,但你可以初始化一个空的 隐藏 html.Div(...),然后用它来存储回调的输入。之后,您将能够从任何其他回调中访问它。

【讨论】:

如何从隐藏的 Div 中提取值并将其分配给变量? 我的意思是你可以将它用作其他回调的输入 - 例如那些你过滤和数据框并创建图表的回调

以上是关于如何将破折号输入保存为全局变量的主要内容,如果未能解决你的问题,请参考以下文章

将async函数的结果保存到全局变量

如何将我的位置保存在全局变量中

应用程序关闭后如何快速保存全局变量?

axure全局变量怎么用?axure如何设置全局变量?求助!!

按下 UIButton 时,Swift 将文本保存到实例/全局变量

如何在flutter中将token设置为全局变量?所以我可以随时随地访问令牌