Dashのコールバックを使ってテキストフィールドに入力された
値を別の場所にリアルタイムに表示してみます。
レイアウトを以下のように設定し、インプットするフォームに
“my-id”と名前を付けます。
また、空のhtmlフィールドを用意して”my-div”と名前を付けます。
1 2 3 4 5 |
app.layout = html.Div([ dcc.Input(id="my-id",value="Inisitoa Text",type="text"), html.Div(id="my-div") ]) |
次にコールバックの設定です。
1 2 3 4 |
@app.callback(Output(component_id="my-div",component_property="children"), [Input(component_id="my-id",component_property="value")]) def updata_output_div(input_value): return "You enterd:{}".format(input_value) |
Output、つまり出力先は先ほど指定したhtmlの空フィールド”my-div”に
向けているのでテキスト入力フォームの直下にアウトプットされた値が
表示されるという意味になります。
Inputはdcc.Input()で設定した”my-id”から来たものがインプットである
と定義します。
このように設定すると表示されたテキストフォームに文字列を
入力すると、フォーム直下の空htmlフィールドに入力した文字列が
即座に反映されます。
コード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
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([ dcc.Input(id="my-id",value="Inisitoa Text",type="text"), html.Div(id="my-div") ]) @app.callback(Output(component_id="my-div",component_property="children"), [Input(component_id="my-id",component_property="value")]) def updata_output_div(input_value): return "You enterd:{}".format(input_value) if __name__ == '__main__': app.run_server() |
コメントを残す