一个小技巧轻松提升Dash应用debug效率

news/2026/1/21 18:02:44/文章来源:https://www.cnblogs.com/feffery/p/19513359
更多Dash应用开发干货知识、案例,欢迎关注“玩转Dash”微信公众号👇

image

1 简介

大家好我是费老师。Dash作为基于Python进行全栈应用开发的流行框架,具有强大的可伸缩性——这意味着在同一套基于组件+回调函数的代码组织方式下,使用Dash可以轻松覆盖从小型简单应用,到大型复杂应用,各种复杂程度的应用开发任务。这也是Dash在世界范围内,被众多的大公司用于持续开发企业级数据应用的原因之一。

而随着所开发的Dash应用功能日益增长,我们则需要学习如何在应用开发过程中,更高效准确调试应用功能逻辑定位异常问题所在

今天的文章中,我们就来一起学习新版本Dash(>=3.4.0版本)中增加的一些功能特性,帮助我们更精准快速的定位常见回调函数开发问题。

2 在回调图中用hidden和hide_all_callbacks参数聚焦回调函数

虽然我之前在公众号玩转Dash知识星球等平台发布的文章和课程中,并没有专门做过介绍,但很多同学应该对类似下面的界面有印象:我们在Dash应用开发阶段,为app.run()设置debug=True开启开发调试模式后,通过点击右下角开发模式工具条中的Callbacks按钮,可以展开一套可交互的有向图,我们可以将其称作回调图

默认情况下,它记录并呈现当前Dash应用中全部的回调函数编排关系,这对于小型Dash应用很直观明了,因为图中的节点比较少。但是对于页面众多、功能逻辑众多的中大型Dash应用来说,当你打开回调图时,看到的可能是下面这样庞大复杂的景象:

😅这种情况下我们大概率会当做什么都没看见,默默的关闭回调图面板。。。

那么有没有办法在这个回调图中默认不展示全部回调关系,只针对目前关注的部分回调函数进行展示呢?

有的兄弟,有的,首先我们直接将Dash升级到>=3.4.0版本:

pip install dash -U

以实现“拼接两个输入框内容”的简单应用功能为例:

import dash
from dash import html
import feffery_antd_components as fac
from dash.dependencies import Input, Output
from feffery_dash_utils.style_utils import styleapp = dash.Dash(__name__, suppress_callback_exceptions=True)app.layout = html.Div([fac.AntdSpace([fac.AntdInput(id="input1", placeholder="请输入内容"),fac.AntdInput(id="input2", placeholder="请输入内容"),fac.AntdText(id="output-texxt"),])],style=style(padding=50),
)@app.callback(Output("output-text", "children"),Input("input1", "value"),Input("input2", "value"),
)
def combine_inputs(input1, input2):"""拼接输入的内容"""return "拼接结果:" + (input1 or "") + (input2 or "")if __name__ == "__main__":app.run(debug=True)

在上面的示例代码中,我们“不小心”地把用于显示拼接内容结果的组件id参数写成了output-texxt🤯,这也是比较常见的导致回调函数不生效的原因之一:

这种情况下,当我们在浏览器中发现相关功能没有如期运作时:

就可以优先考虑通过回调图查看对应回调函数的执行情况,可以看到虽然我们在相关输入框里输入了一些内容,但对应的回调函数一次都没执行(count 0):

这种情况下,我们首先就可以想到是不是对应回调函数中有Output角色的id,与对应组件定义的id参数不一样,经过修正,功能正确运作的情况下,在回调图结果中就可以看到该回调函数执行了多少次执行耗时等有用的信息:

此时,我们再联想到上文中展示过的,对应中大型Dash应用的非常庞杂的回调图,假如上面这个回调函数debug的场景出现在类似规模的应用中,我们就可以基于Dash>=3.4.0版本,首先在app.run()中设置hide_all_callbacks=True,这将在回调图中强制隐藏所有的回调函数:

然后再为对应的回调函数callback()中设置hidden=False

这将以更高的优先级,在回调图中强制展示当前回调函数关系,这样无论是再复杂的Dash应用,我们都可以在回调图中只聚焦于我们关注的那些回调函数,大幅度提升应用功能调试效率🚀:

大家可以在日常开发Dash应用的过程中,多多利用今天介绍的技巧,开发出更稳健的应用💪~


更多有关Dash应用开发的干货内容,欢迎持续关注我们❤️

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1195781.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

动态规划之“最大子数组和”问题的三种算法

动态规划之“最大子数组和”问题的三种算法 一、关键概念 - 子数组:原数组中连续的一段元素。 - 子序列:元素顺序不变但不一定连续。 - 连续子序列:等价于子数组。 二、暴力算法 - 核心思路:枚举所有可能的连续子数组&…

如何通过知网、维普、万方AIGC检测?深扒算法逻辑和4招降AI通关秘籍(亲测有效)

随着AIGC检测在高校的普及,今年的毕业论文审查越来越严。如果AI率过高,可能会面临取消答辩资格、延期毕业的风险! 知己知彼,百战不殆。目前知网、维普、万方是国内高校最主流的三大检测平台,它们到底是怎么判定你是AI…

RC-3溶出仪口碑推荐:优质品牌全网实测盘点

在药物研发与质量控制的严谨世界里,溶出度测试是评估固体制剂(如片剂、胶囊)内在品质与生物利用度的关键一环。一台精准、稳定、可靠的溶出仪,是确保数据有效、通过法规审查的基石。本文将结合全网实测反馈与专业分…

2026年早强剂外加剂销售厂家推荐与膨胀剂外加剂公司排名分析

在本文中,我们将深入探讨早强剂外加剂的市场环境及其主要厂家。从推荐的批发商入手,分析他们的行业背景和产品优势,帮助读者了解如何选择具有信誉和实力的供应商。同时,我们会探索如何有效联系源头厂家以获取更多信…

2026瑶浴实力厂家推荐榜:贵州苗之灵中药科技,直销定制全系瑶浴产品,附联系方式

瑶浴作为传统养生文化的重要载体,近年来因其在缓解疲劳、促进血液循环等方面的独特价值,逐渐成为健康消费领域的热门选择。据行业数据显示,2025年瑶浴市场规模已突破120亿元,年复合增长率达15%,其中定制化瑶浴产品…

聚焦2026:武汉地区有哪些值得关注的水利水电工程施工企业?

文章摘要 本文旨在为2026年有水利水电工程建设需求的决策者提供参考。文章首先分析了当前水利行业的发展背景与武汉市场的机遇,在此基础上,以第三方视角综合考量企业资质、技术实力、项目经验等多重因素,推荐了五家…

Linux02-Linux是什么怎么学

一、Linux是什么 1.1 什么是操作系统? 计算机是一堆硬件组成的,为了控制这些硬件资源,于是就有了操作系统。 操作系统是计算机中最核心的系统软件,位于硬件和应用程序之间,负责管理硬件资源江为用户和应用程序提供运行环境。 操作系统的典型组成结构 应用程序 ───…

微信公众号矩阵系统哪家比较好?

微信公众号矩阵系统哪家比较好? 在当今数字化时代,微信公众号已成为企业品牌宣传、用户互动和内容传播的重要渠道。然而,随着公众号数量的增加,管理和运营变得越来越复杂。为了更好地管理和优化多个公众号,许多企…

面试常见问题之剖析哈希表

一、时间复杂度基础- 时间复杂度是衡量算法效率的指标,用大O表示法(如O(1)、O(n)、O(n^2))。数值越小,算法效率越高。 - O(1):无循环的简单操作,如赋值、基本运算、数组下标访问。 - O(n):单层循…

解决【Error 1935.安装程序集“Microsoft.VC8O. ATL,type=“win32“,version=“8.0.50727.6195“,publicKeyToken=“1fe8b】

第三方程序可能干扰安装。按以下步骤 “干净启动” 系统: 按WinR,输入msconfig回车,打开 “系统配置”。 切换到 “服务” 选项卡,勾选 “隐藏所有 Microsoft 服务”,然后点击 “全部禁用”。 切换到 “启动” 选项卡…

果博东方「百科」l66873-99996电微开户区块链的应用案例?

区块链的应用案例确实非常丰富,我来给你梳理几个典型领域,帮你快速了解它的实际价值: 金融领域 银行间联合贷款清算‌:微众银行联合上海华瑞银行,利用区块链技术优化“微粒贷”联合贷款的结算和清算,实现交易实时…

2026 年化妆品空运公司推荐:专业高效的美妆物流解决方案指南

在美妆行业快速发展的今天,化妆品空运已成为品牌拓展市场、保障产品新鲜度的关键环节。由于化妆品多含液体、粉末、膏体等敏感成分,部分香水类产品还属于易燃危险品,对运输的专业性、安全性和时效性要求极高。本文为…

码农常见问题之如何证明自己写的算法是对的

很多初学者不知道如何证明自己写的算法是正确的,通常只能通过提交代码看是否“AC”(Accepted,即通过所有测试用例)来判断。核心方法(四步验证法)以“在含10万个元素的数组中,找两数之和等于1024…

RWA:2025年最危险的金融实验,还是下一个万亿风口?

引言:一场静默的资产流通革命 当新加坡数字债券平台Hashstacs在2024年Q1完成首笔1.2亿美元房地产代币化交易,当全球碳信用市场因RWA技术实现跨境实时结算,当华尔街投行开始用区块链追踪黄金供应链——这场由真实世界资产(Real Wo…

耐力板行业领军者:29年经验+行业标准参编(2025推荐)

一、开篇:耐力板市场进入技术分水岭 2025年中国耐力板市场规模突破230亿元,年复合增长率达12.3%。随着雄安站、广州南站等超大型交通枢纽对材料耐候性要求提升至15年质保标准,传统供应商面临技术代际差距。本文基于…

Java+AI 核心指南:大模型丝滑接入与多模型统一范式

在人工智能技术深入企业业务的当下,Java作为企业级应用开发的主流技术栈,如何高效集成AI能力、实现业务系统智能化升级,成为众多技术团队面临的核心课题。不同于Python在AI算法研发领域的优势,Java技术栈的核心价值在于稳定的工程…

Pscad仿真模型-电力仿真程序, VMD与TEO结合的行波测距双端电源以及T接线路

Pscad仿真模型-电力仿真程序, VMD与TEO结合的行波测距双端电源以及T接线路,双端测距方法参考《基于VMD和TEO的高压输电线路雷击故障测距研究_高艳丰》,T型测距算法参考: 《基于VMD和TEO的高压输电线路雷击故障测距研究_高艳丰》 《…

上万点数据如何稳定采集?基于 BL118 Node-RED 的工业边缘汇聚方案

在智慧工厂、能源管理、园区级监控项目中,**“上万点数据采集”**已经不是什么极端需求,而是越来越常见的日常场景。PLC 越来越多、仪表越来越密、数据频率越来越高,但真正让项目头疼的,从来不是“点数写不写得下”…

从中心化到混合架构:数字资产交易所的技术革命与生态重构

引言:一场静默的金融基础设施革命当全球数字资产市值突破5万亿美元大关,当Coinbase单日交易量超越纽约证券交易所,当Solana链上衍生品合约规模直追传统金融市场——这场由区块链技术驱动的金融革命,正在重塑人类社会的价值交换方式…

靠谱的小程序开发制作公司:2026年选型指南

随着数字化转型的持续深入,小程序凭借轻量化、高触达、强生态的优势,已成为企业链接用户、拓展业务的核心载体。据微信公开课发布的官方数据显示,小程序生态年交易规模持续增长,覆盖行业从零售、餐饮延伸至政务、医…