簡體   English   中英

根據用戶在破折號(或閃亮)中輸入的打印輸出

[英]Print output based on user input in dash (or shiny)

我想從用戶的輸入中獲取輸入xy到文本框。

if x + 2*y 3*x*y > 100:
    print('Blurb 1')
else:
    print('Blurb 2')

這似乎與回調等混雜在一起,即使它可以是獨立的並且非常簡單。 有沒有一種簡單的方法可以在 Web 應用程序中執行此操作? 我發現的其他資源似乎假設了一個更復雜的目標,所以我很好奇可以削減多少代碼。

我認為不定義回調就無法完成任務,但是完成工作的代碼非常簡短。 可能的解決方案如下:

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([
    html.H1("Simple input example"),
    dcc.Input(
        id='input-x',
        placeholder='Insert x value',
        type='number',
        value='',
    ),
    dcc.Input(
        id='input-y',
        placeholder='Insert y value',
        type='number',
        value='',
    ),
    html.Br(),
    html.Br(),
    html.Div(id='result')
    ])


@app.callback(
    Output('result', 'children'),
    [Input('input-x', 'value'),
     Input('input-y', 'value')]
)
def update_result(x, y):
    return "The sum is: {}".format(x + y)


if __name__ == '__main__':
        app.run_server(host='0.0.0.0', debug=True, port=50800)

這是你得到的: 在此處輸入圖片說明

每當兩個輸入框之一更改其值時,總和的值就會更新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM