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之间均可):
mamba create -n dash3.x-test-env python=3.10 -y
激活环境:
mamba activate dash3.x-test-env
接着我们直接执行下列命令安装最新版本的Dash即可:
pip install dash -U
查看已安装的Dash版本相关信息:

1.2 常用组件库适配版本更新指南
为了从底层适配新版本Dash,常用的组件库版本参考范围如下
1.2.1 fac(feffery-antd-components)
针对通用功能组件库fac,其>=0.4.0版本对应适配新版本Dash,参考下列安装命令:
pip install feffery-antd-components --pre -U
1.2.2 fuc(feffery-utils-components)
针对实用工具组件库fuc,其>=0.3.0版本对应适配新版本Dash,参考下列安装命令:
pip install feffery-utils-components --pre -U
1.2.3 fmc(feffery-markdown-components)
针对markdown渲染组件库fmc,其>=0.4.0版本对应适配新版本Dash,参考下列安装命令:
pip install feffery-markdown-components --pre -U
1.2.4 fact(feffery-antd-charts)
针对数据可视化组件库fact,其>=0.2.0版本对应适配新版本Dash,参考下列安装命令:
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 ):
# 单独取得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学习”加入我们的技术交流群,一起成长一起进步。
Python全栈应用开发利器Dash 3.x新版本介绍(1)的更多相关文章
- 【Python全栈-后端开发】嵩天老师-Django
嵩天老师-Python云端系统开发入门教程(Django) 视频地址:https://www.bilibili.com/video/av19801429 课前知识储备: 一.课程介绍: 分久必合.合久 ...
- 【Python全栈-后端开发】Django入门基础
Django基础知识 一. 什么是web框架? 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的 ...
- 【Python全栈-后端开发】Django进阶2-Form表单
Django进阶2-Form表单 Django的Form主要具有一下几大功能: 生成HTML标签(可以保留上次输入内容) 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页 ...
- 读后笔记 -- Python 全栈测试开发 Chapter10:接口的设计与开发
10.1 Django 框架 1. 几个主流的框架: 1)适合初学者的接口框架:Django,Flask 2)针对底层定义:Twisted 3)实现高并发:Tornado 2. install // ...
- 【Python全栈-后端开发】Django进阶之Model操作复习
Django进阶之Model操作复习 一.字段 AutoField(Field) - int自增列,必须填入参数 primary_key=True BigAutoField(AutoField) - ...
- 【Python全栈-后端开发】数据库进阶
数据库进阶 python关于mysql的API---pymysql模块 pymsql是Python中操作MySQL的模块,其使用方法和py2的MySQLdb几乎相同. 模块安装 pip install ...
- 读后笔记 -- Python 全栈测试开发 Chapter11:Python + Requests 实现接口测试
11.1 Requests 框架 11.1.1 requests 请求 1. reqeusts 库 安装 pip install requests 2. requests 库 GET 方法,参数通过 ...
- 读后笔记 -- Python 全栈测试开发 Chapter8:接口测试
8.1 接口测试 1. 市场分布 UI(web.app)自动化:10% 接口自动化:20% 单元测试:70% -- 测开 2. 接口类型: 1)结构划分:模块间(系统间)的接口称为内部接口:系统与第三 ...
- 【Python全栈-后端开发】Django进阶1-分页
Django[进阶篇-1 ]分页 分页 一.Django内置分页 from django.core.paginator import Paginator, EmptyPage, PageNotAnIn ...
- 【Python全栈-后端开发】Django入门基础-2
Django入门基础知识-2 一 .模版 一.模版的组成 HTML代码+逻辑控制代码 二.逻辑控制代码的组成 1 变量(使用双大括号来引用变量) {{var_name}} 2 标签(tag)的使用 ...
随机推荐
- Gin CORS
Go 语言手搓一个简单的跨域还是比较容易的, 但自己手搓一批通用代码总归还是麻烦了点. 如果使用 Gin 的话, 有现成的跨域中间件可以用. github.com/gin-contrib/cors 注 ...
- exim4
exim4 一台 debian 机器日常执行 apt update 后发现需要更新如下软件包, 之前没见过, 特此记录下. root@idebian:~# apt list --upgradable ...
- SRE网站可靠性工程师
SRE网站可靠性工程师 SRE需要做什么? 一般: 故障模式,尤其是SPOF(单点故障).消除SPOFs是你作为SRE最大的挑战和乐趣. 基础设施组件,从应用程序到硬件(服务器.交换机.路由器.互联网 ...
- DevOps工程师技能
技术背景 DevOps工程师必须持有计算机科学.工程或其他相关领域的学位.2年以上工作经验.这包括开发人员.系统管理员或devops驱动的团队成员的工作.这是一个重要的需求,同时也是对所有IT操作的理 ...
- 如何在 MySQL 中避免单点故障?
如何在 MySQL 中避免单点故障? 在 MySQL 中避免单点故障(SPOF, Single Point of Failure)是确保数据库高可用性和系统稳定性的关键.通过采取以下几种策略,可以最大 ...
- issue: java.lang.NoClassDefFoundError: javax/el/ELManager
问题描述: Context initialization failed org.springframework.beans.factory.BeanCreationException: Error c ...
- .NET周刊【4月第1期 2025-04-06】
国内文章 35岁程序员的中年求职记:四次碰壁后的深度反思 https://www.cnblogs.com/minily/p/18803259 文章探讨程序员的35岁危机,指出这一问题确实存在,但也有其 ...
- 一行代码搞定防抖节流:JavaScript新特性解析
防抖(Debounce)和节流(Throttle)是两种前端开发中常用的性能优化技术,尤其在处理高频触发事件如滚动.调整窗口大小.输入等场景中.传统实现这些功能需要编写复杂的函数,但随着JavaScr ...
- Java三大特性 封装、继承、多态
封装 概念: 封装指的是将类的某些信息隐藏在类内部,不允许外部程序直接访问,只能通过该类提供的方法来实现对隐藏信息的操作和访问. 封装实现的步骤: 1.修改属性的可见性来显示属性的访问,一般设为pri ...
- AI 在软件测试中的应用:2025 年趋势、工具及入门指南
引言 人工智能 (AI) 正在深刻地重塑软件开发和质量保证 (QA) 的各个方面.尤其是在软件测试领域,AI 不再仅仅是未来愿景,而是当下正在发生的变革.据世界质量报告(2023-24)指出,高达 7 ...