Dash 2.15版本新特性介紹

本文示例代碼已上傳至我的Github倉庫https://github.com/CNFeffery/dash-master

  大家好我是費老師,Dash不久前發佈了其2.15.0版本,新增了一些實用的特性,下面我們就來一起get其中的重點😉:

1 在瀏覽器端回調中獲知觸發來源

  熟悉Dash應用開發的朋友應該知道,針對編排了多個Input角色的常規回調函數,我們可以通過dash.ctx.triggered_id等上下文信息,在每次回調函數被觸發時,知曉究竟是哪個Input角色觸發了本次的回調函數執行,就像下面這個簡單的例子所展示的那樣:

app1.py

import dash
from dash import html
import feffery_antd_components as fac
from dash.dependencies import Input, Output

app = dash.Dash(__name__)

app.layout = html.Div(
    [
        fac.AntdSpace(
            [
                fac.AntdButton(
                    '按鈕1',
                    id='button1',
                    type='primary'
                ),
                fac.AntdButton(
                    '按鈕2',
                    id='button2',
                    type='primary'
                )
            ]
        ),
        fac.AntdParagraph(id='demo-output')
    ],
    style={
        'padding': 50
    }
)

@app.callback(
    Output('demo-output', 'children'),
    [Input('button1', 'nClicks'),
     Input('button2', 'nClicks')],
    prevent_initial_call=True
)
def handle_button_click(nClicks1, nClicks2):

    return '本次回調觸發來源:{}'.format(
        dash.ctx.triggered_id
    )

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

  而從2.15.0版本開始,瀏覽器端回調中同樣也支持在回調函數中拿到triggered_id信息,在上面例子的基礎上,我們將常規回調函數改造爲下面的瀏覽器端回調函數,來看看dash_clientside.callback_context中包含了哪些信息:

app.clientside_callback(
    '''(nClicks1, nClicks2) => {
        // 打印本次回調上下文信息
        console.log(dash_clientside.callback_context)
    }''',
    Output('demo-output', 'children'),
    [Input('button1', 'nClicks'),
     Input('button2', 'nClicks')],
    prevent_initial_call=True
)

Dash < 2.15.0

Dash >= 2.15.0

  可以看到,在新版本中,瀏覽器端回調中的回調上下文信息新增了triggered_id信息,更加方便了~

2 調試模式下更方便清晰的錯誤提示

  另一項重要的新特性是面向像費老師我這樣的Dash組件庫開發者的,可以在組件底層自定義需要在Dashdebug工具頁面中顯示的錯誤提示信息,從而大幅度提升普通Dash應用開發者的日常體驗😉~

  以由我開源維護的網頁通用組件庫fac中的進度條組件AntdProgress爲例(https://fac.feffery.tech/AntdProgress),其percent參數用於設置進度值,取值應在0到1之間:

  得益於新版本Dash在底層對於自定義錯誤提示的支持,我就可以在AntdProgress底層對不符合規範要求的參數值進行檢查,並通過Dash調試模式自帶的前端控件輸出更清晰的錯誤提示(下面的例子僅做簡單演示,我會在由我維護的一系列Dash組件庫後續的版本升級中逐步形成更清晰完整的錯誤提示體系):

  更多有關2.15.0版本更新內容的信息請移步https://github.com/plotly/dash/releases/tag/v2.15.0


  以上就是本文的全部內容,對Dash應用開發感興趣的朋友,歡迎添加微信號CNFeffery,備註“dash學習”加入我的技術交流羣,一起成長一起進步。

  

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章