【数据科学系列】基于Python的Web应用框架Dash-Dash 状态

Dash 状态

基本的回调函数

# -*- coding: utf-8 -*-
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)

app.layout = html.Div([
    dcc.Input(id='input-1', type='text', value=u'上海'),
    dcc.Input(id='input-2', type='text', value=u'北京'),
    html.Div(id='output')
])


@app.callback(Output('output', 'children'),
              [Input('input-1', 'value'),
               Input('input-2', 'value')])
def update_output(input1, input2):
    return u'Input 1 is "{}" and Input 2 is "{}"'.format(input1, input2)


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

在这里插入图片描述
在这里插入图片描述
输入1为“北京”,输入2为“上海”
在此示例中,只要dash.dependencies.Input更改描述了任何属性,就会触发回调函数。通过在上面的输入中输入数据来亲自体会。

dash.dependencies.State允许用户传递额外的值而不触发回调。以下是与上面相同的例子,但 其中dcc.Input为 dash.dependencies.State和按钮为 dash.dependencies.Input。

# -*- coding: utf-8 -*-
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output, State

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)

app.layout = html.Div([
    dcc.Input(id='input-1-state', type='text', value=u'北京'),
    dcc.Input(id='input-2-state', type='text', value=u'上海'),
    html.Button(id='submit-button', n_clicks=0, children='Submit'),
    html.Div(id='output-state')
])


@app.callback(Output('output-state', 'children'),
              [Input('submit-button', 'n_clicks')],
              [State('input-1-state', 'value'),
               State('input-2-state', 'value')])
def update_output(n_clicks, input1, input2):
    return u'''
        The Button has been pressed {} times,
        Input 1 is "{}",
        and Input 2 is "{}"
    '''.format(n_clicks, input1, input2)


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

在这里插入图片描述
在这里插入图片描述

在此示例中,更改dcc.Input框中的文本不会触发回调,但单击按钮会触发回调。即使dcc.Input它们不触发回调函数本身,dcc.Input的当前值仍会传递到回调中。

注意:通过侦听组件的n_clicks属性来触发回调 html.Button。n_clicks是每次单击组件时都会增加的属性。它可以在dash_html_components库中的每个组件中使用 。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Dash-UI 是一个基于 PythonWeb 应用框架,用于构建交互式的数据可视化应用程序。要使用 Dash-UI,你需要先安装相应的包。可以通过以下命令使用 pip 安装 Dash-UI: ``` pip install dash ``` 安装完成后,你可以创建一个 Python 文件,并导入 Dash 相关的库: ```python import dash import dash_core_components as dcc import dash_html_components as html from dash.dependencies import Input, Output ``` 接下来,你可以通过编写布局和回调函数来构建你的 Dash 应用。布局部分使用 HTML 和 CSS 标签,定义应用的外观和组件排列。回调函数部分用于定义组件之间的交互行为。 以下是一个简单的示例,展示了如何创建一个 Dash 应用: ```python app = dash.Dash(__name__) app.layout = html.Div( children=[ html.H1('欢迎使用 Dash-UI'), dcc.Input(id='input', value='', type='text'), html.Div(id='output') ] ) @app.callback( Output(component_id='output', component_property='children'), [Input(component_id='input', component_property='value')] ) def update_output_div(input_value): return f'你输入了:{input_value}' if __name__ == '__main__': app.run_server(debug=True) ``` 这个简单的应用包含一个输入框和一个输出区域,当你在输入框中输入内容时,输出区域会显示你输入的内容。 以上是 Dash-UI 的基本用法,你可以根据需求进一步探索和扩展。如果有具体的问题或需要更详细的帮助,请提供更多信息。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值