Python全栈应用开发利器Dash 3.x新版本介绍(1)

更多Dash应用开发干货知识、案例,欢迎关注"玩转Dash"微信公众号👇

大家好我是费老师,Dash作为Python生态中++强大++ 且++灵活++ 的全栈应用开发 框架,早在几个月前就发布了其3.0新版本,作为一次大版本更新,最开始或多或少都会存在一些小bug,需要经历若干小版本的迭代更新后,才可以在日常项目中稳定使用。

截至本文写作时,Dash已迭代更新至3.1.1正式版本,充分修复了新版本的相关bug,并陆续增加了不少的新功能特性。从本篇文章开始,我将分几期来详细介绍Dash在3.x新版本中为我们带来的丰富新功能内容及相关变化,一起get更高效的Python全栈应用开发能力😉~

1 Dash及常用组件库更新指南

1.1 Dash 3.x版本更新指南

强烈建议 读者朋友们使用虚拟环境来支撑日常项目,以conda/mamba为例,我们首先++新建++ 示例虚拟环境(Python版本在3.8到3.12之间均可):

bash 复制代码
mamba create -n dash3.x-test-env python=3.10 -y

激活环境:

bash 复制代码
mamba activate dash3.x-test-env

接着我们直接执行下列命令安装最新版本的Dash即可:

bash 复制代码
pip install dash -U

查看已安装的Dash版本相关信息:

1.2 常用组件库适配版本更新指南

为了从底层适配新版本Dash,常用的组件库版本参考范围如下

1.2.1 fac(feffery-antd-components)

针对通用功能组件库fac,其>=0.4.0版本对应适配新版本Dash,参考下列安装命令:

bash 复制代码
pip install feffery-antd-components --pre -U

1.2.2 fuc(feffery-utils-components)

针对实用工具组件库fuc,其>=0.3.0版本对应适配新版本Dash,参考下列安装命令:

bash 复制代码
pip install feffery-utils-components --pre -U

1.2.3 fmc(feffery-markdown-components)

针对markdown渲染组件库fmc,其>=0.4.0版本对应适配新版本Dash,参考下列安装命令:

bash 复制代码
pip install feffery-markdown-components --pre -U

1.2.4 fact(feffery-antd-charts)

针对数据可视化组件库fact,其>=0.2.0版本对应适配新版本Dash,参考下列安装命令:

bash 复制代码
pip install feffery-antd-charts --pre -U

其他组件库类似,参考上面的方式进行更新即可。

2 Dash 3.x版本部分新功能&变化

篇幅有限,本期文章我们先介绍Dash新版本中比较简单直接的一些新功能及变化:

2.1 组件参数支持静态类型注解

新版本中为组件参数增加了静态类型注解 相关支持,最直接的,我们在编写组件代码时,可以配合现代IDE中自动的提示功能,更轻松的编写参数,下面是部分场景示例:

  • 枚举型参数

以fac中的按钮组件为例,在编写如type这种枚举型参数时,直接就可以获得合法参数项提示:

  • 字典型参数

以fac中的输入框组件为例,在编写如autoSize这种字典型参数时,可以自动提示出合法的子参数键名:

  • 更复杂的参数

Dash新版本中的组件参数类型注解,对结构比较复杂的参数也适配的很好,譬如fac中表格组件用于定义表格字段的columns参数:

并且在各种现代化IDE中,可配合类型检查 功能,更及时直观的发现参数书写错误问题,以vscode为例,在打开类型检查功能后:

对应Dash应用代码中,不合规的组件参数都会醒目地标记出来:

2.2 开发者工具重构

新版本中对Dash应用debug调试模式下运行时,应用页面中自带的开发者工具进行重构,由老版本中经典的"小蓝圈",调整为页面右下角更不易遮挡应用界面的折叠图标形式:

并且附带了当前Dash版本信息,且当Dash版本滞后于已发布的最新版本时,会有相应的可更新提示,比如我们故意将Dash降级到3.1.0之后:

2.3 正式移除run_server()方法

从比较早版本就开始使用Dash的朋友们可能还习惯用app.run_server()方式进行应用的临时启动 ,在3.x版本中,该方法被正式移除,请大家统一使用app.run()形式。

2.4 app实例直接兼容WSGI形式应用部署

在之前的版本中,无论是玩转Dash 公众号中的文章,还是玩转Dash 知识星球中的视频课程里,涉及到使用gunicorn、waitress、granian等工具正式部署Dash应用时,我都会强调需要额外编写类似下面的代码,将Dash应用实例变量的server属性取出,方可用于在相关WSGI部署命令中作为目标(Dash应用高性能部署具体视频教程参考:https://t.zsxq.com/Feqzs ):

python 复制代码
# 单独取得server属性,即Dash实例对应内置的Flask应用实例
server = app.server

而在>=3.1.0版本中,我们可以直接将Dash应用实例作为目标进行应用部署,以gunicorn为例:

2.5 底层React依赖版本更新至18.3.1

Dash从3.0.0版本开始,底层用于前端渲染控制的React依赖版本升至18.3.1,如果你需要从底层开发Dash组件库,或在Dash应用中基于浏览器端回调集成使用譬如univer之类的受React版本影响的框架,这一更新项可以留意下:


篇幅有限,本期文章就先介绍到这里,有关Dash新版本中更丰富强大的其他重磅更新内容,我会在接下来的数篇文章中为大家详细介绍,敬请期待~


  以上就是本文的全部内容,对Dash应用开发感兴趣的朋友,欢迎添加微信号CNFeffery,备注"dash学习"加入我们的技术交流群,一起成长一起进步。

相关推荐
hhzz22 分钟前
【YOLO 入门到精通 04】理解任务与模型家族:7 大 CV 任务与 YOLO26 选型指南
人工智能·python·深度学习·yolo·计算机视觉
Escalating_xu30 分钟前
【Python】使用库:标准库、第三方库、pip、项目实战与程序打包
java·python·pip
水獭比特32 分钟前
Agent 工具审批不止一个按钮:用 v0.22.1 复盘入口、恢复和副作用
人工智能·python
苦瓜打怪兽1 小时前
leetcode 热题100(11. 盛最多水的容器)
python·算法·leetcode
砚底藏山河1 小时前
量化实战:回测数据底座快照与版本管理进阶
java·大数据·python·金融·maven
“AI国潮设计-小江”1 小时前
《Python+SDXL实战:用ControlNet批量生成“英歌舞麻将糕”IP,附自动化脚本与商用思路》
开发语言·人工智能·python·prompt·aigc
逗脑IDE3 小时前
零基础学ESP32:RFID无线射频卡——让ESP32拥有“刷卡“能力!
开发语言·网络·人工智能·python·esp32·硬件开发
协皓家具3 小时前
2026年广州岛台吧台椅厂家有啥新变化
大数据·运维·python·devops
yuniko-n3 小时前
【Java】字符串相关坑点
java·开发语言·python
用户019027581613 小时前
如何用 Python 统计 A 股连续涨停(几连板)?
python