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

python 复制代码
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中包含了哪些信息:

python 复制代码
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组件库开发者的,可以在组件底层自定义需要在Dash的debug工具页面中显示的错误提示信息,从而大幅度提升普通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学习"加入我的技术交流群,一起成长一起进步。

  

  

相关推荐
编码者卢布30 分钟前
【App Service 】WebJobs 多实例实验:谁在运行,什么时候运行?
开发语言·python
quantdash_cc38 分钟前
Python 获取实时行情后如何进行批量筛选?从全市场快照到策略候选池
开发语言·python·数据分析·量化交易·股票数据·quantdash
小蜗 strong1 小时前
和电脑猜拳(随机程序应用)
服务器·前端·python
华研前沿标杆游学2 小时前
企业标杆游学|走进东莞OPPO总部✨探秘智造与品牌出海
python
大侠归来2 小时前
C语言内存管理:从栈到堆的完整指南
c语言·开发语言·python
LOVE️YOU2 小时前
Python 数据结构的本质:位置、对象引用、Hash 与可变性
数据结构·python·哈希算法
李航19832 小时前
自动动手开发图形引擎,不仅能AI建模,还能AI渲染
人工智能·python·计算机视觉·ai·ai编程
LeoCrawls3 小时前
Python 读取 JSON 常见报错排查,附完整处理函数
python·json·php
zzZ··*3 小时前
CodeBuddy 用量看板:本地解析 Token 与积分消耗,不联网不上传
python·vue·ai编程
小猴子爱上树3 小时前
跨马翻译:批量图片翻译+视频字幕+智能抠图一站式工具
python·音视频