【Dash】feffery_antd_components 简单入门示例
一、简单了解 feffery_antd_components
简称 fac ,是一个基于 Ant Design 的 Dash 第三方组件,由Feffery 老师开源维护的 Python 网页开发组件库,它具有丰富的页面常用交互组件功能,使开发者可以使用纯Python的方式快速构建现代化的交互式Web应用。fac组件底层与Dash框架紧密结合,提供了包括通用、布局、导航、数据录入、数据展示、反馈等七大类功能,拥有多达109个组件,覆盖了各种常用应用功能需求。
fac 组件库主要特点包括:
1、丰富的组件类型,提供超过100个组件,满足不同开发需求
2、简洁的Python接口,降低学习成本
3、遵循 Ant Design 设计规范
4、支持多语言,可设置不同的语言环境
5、支持静态资源通过 CDN 加载,加速应用访问速度
6、减少应用初始加载时间,按需加载资源
7、利用批量属性监听,提升回调函数编排效率,简化代码
二、简单入门代码
import dash
from dash import html
import feffery_antd_components as facapp = dash.Dash(__name__)app.layout = html.Div([fac.AntdTitle('您好! Dash', level=2),fac.AntdDivider(lineColor='red', isDashed=True),fac.AntdText('Dash 版本:%s' % dash.__version__,underline=True),fac.AntdDivider('分割线', lineColor='#6EAA82', isDashed=True,fontColor='#4F78B0',fontStyle='italic'),fac.AntdText('fac版本%s' % fac.__version__),fac.AntdText('Hello, here is Garcia.',style={'position': 'fixed',# 'top': '40%','left': '50%','color': '#907DAC','fontSize': '30px','fontWeight': 'bold', # "normal" "bold" "bolder" "lighter"'fontStyle': 'italic' # "normal"}),fac.AntdDivider(lineColor='red', isDashed=True),fac.AntdAlert(message='Hello Dash!',description=f'Dash 版本:{dash.__version__}, fac版本:{fac.__version__}',type='info',showIcon=True),
])if __name__ == '__main__':app.run_server(debug=True)
输出:

三、代码解读
import dash from dash import html import feffery_antd_components as fac
- 导入 Dash 库,Dash 是一个用于构建 Web 应用的 Python 框架
- 从 dash 库中导入 html 模块,该模块提供了创建 HTML 元素的类
- 导入 feffery_antd_components 库,并将其重命名为 fac ,以便在代码中简化引用
app = dash.Dash(__name__)
- 创建 Dash 应用实例,使用魔术变量 __name__ 作为应用的名称
app.layout = html.Div([fac.AntdTitle('您好! Dash', level=3),fac.AntdDivider(lineColor='red', isDashed=True),fac.AntdText('Dash 版本: %s' % dash.__version__, underline=True),fac.AntdDivider('分割线', lineColor='#6EAA82', isDashed=True,fontColor='#4F78B0',fontStyle='italic'),fac.AntdText('fac 版本%s' % fac.__version__),fac.AntdText('Hello, here is Garcia.',style={'position': 'fixed','left': '50%','color': '#907DAC','fontSize': '30px','fontWeight': 'bold','fontStyle': 'italic'}),fac.AntdDivider(lineColor='red', isDashed=True),fac.AntdAlert(message='Hello Dash!',description=f'Dash 版本:{dash.__version__}, fac版本:{fac.__version__}',type='info',showIcone=True), ])
app.layout = html.Div([ ... ])
- 定义应用的布局,使用 html.Div 作为容器,放置多个子组件
fac.AntdTitle('您好! Dash', level=2),
- 创建一个标题组件 AntdTitle ,标题级别为2
fac.AntdDivider(lineColor='red', isDashed=True),
- 用 AntdDivider 创建一条分割线,设置为红色,虚线。
fac.AntdText('Dash 版本:%s' % dash.__version__, underline=True),
- 用 AntdText 创建文本组件,显示 Dash 版本信息,并添加下划线
fac.AntdDivider('分割线', lineColor='#6EAA82', isDashed=True,fontColor='#4F78B0',fontStyle='italic'),
- 再次创建分割线,设置不同颜色、文字、字体等。
fac.AntdText('fac版本%s' % fac.__version__), fac.AntdText('Hello, here is Garcia.',style={'position': 'fixed',# 'top': '40%','left': '50%','color': '#907DAC','fontSize': '30px','fontWeight': 'bold', # "normal" "bold" "bolder" "lighter"'fontStyle': 'italic' # "normal"}),
- 创建 AntdText 文本组件,显示fac的版本信息
- 再创建一个 AntdText ,具有内联样式设置,包括位置、颜色、字体大小和粗细以及风格
fac.AntdDivider(lineColor='red', isDashed=True), fac.AntdAlert(message='Hello Dash!',description=f'Dash 版本:{dash.__version__}, fac版本:{fac.__version__}',type='info',showIcon=True ),
- 创建分割线,红色虚线
- 创建一个警告提示组件 AntdAlert,显示一条信息和描述,类型为“info”, 并显示图标
if __name__ == '__main__':app.run_server(debug=True)
- 判断是否是直接运行脚本,如是则启动 Dash 服务器
- 使用 debug 模式启动服务器,这样可以在开发过程中提供更多调试信息。
相关文章:
【Dash】feffery_antd_components 简单入门示例
一、简单了解 feffery_antd_components 简称 fac ,是一个基于 Ant Design 的 Dash 第三方组件,由Feffery 老师开源维护的 Python 网页开发组件库,它具有丰富的页面常用交互组件功能,使开发者可以使用纯Python的方式快速构建现代…...
JAVA学习-练习试用Java实现“路径交叉”
问题: 给定一个整数数组 distance 。从 X-Y 平面上的点 (0,0) 开始,先向北移动 distance[0] 米,然后向西移动 distance[1] 米,向南移动 distance[2] 米,向东移动 distance[3] 米,持续移动。也就是说&#…...
element组件封装
1.上传组件 <!--文件上传组件--> <template><div class"upload-file"><el-uploadref"fileUpload"v-if"props.type default":action"baseURL other.adaptationUrl(props.uploadFileUrl)":before-upload"h…...
Mysql (面试篇)
目录 唯一索引比普通索引快吗 MySQL由哪些部分组成,分别用来做什么 MySQL查询缓存有什么弊端,应该什么情况下使用,8.0版本对查询缓存由上面变更 MyISAM和InnoDB的区别有哪些 MySQL怎么恢复半个月前的数据 MySQL事务的隔离级别ÿ…...
【python】深入探讨python中的抽象类,创建、实现方法以及应用实战
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...
微前端传值
在微前端架构中,不同子应用之间通过 postMessage 进行通信是一种常见的做法。这种方式允许不同源的窗口之间进行安全的信息交换。 下面是如何使用 postMessage 在微前端环境中发送和接收消息的示例。 步骤 1: 发送消息 假设您有一个主应用(host app&a…...
《学会 SpringBoot · 依赖管理机制》
📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…...
全网行为管理软件有哪些?5款总有一款适合你的企业!
如今企业越来越依赖互联网进行日常运营和业务发展,网络行为管理变得日益重要。 为了确保网络安全、提高员工工作效率、避免敏感信息外泄等问题,企业往往需要借助全网行为管理软件来监控和管理内部网络的使用情况。 本文将为您介绍五款热门的全网行为管理…...
以简单的例子从头开始建spring boot web多模块项目(二)-mybatis简单集成
继续使用以简单的例子从头开始建spring boot web多模块项目(一)中的项目进行mybatis集成。 1、pom.xml文件中,增加相关的依赖包的引入,分别是mybatis-spring-boot-starter、lombok、mysql-connector-java 如下: <d…...
Golang | Leetcode Golang题解之第354题俄罗斯套娃信封问题
题目: 题解: func maxEnvelopes(envelopes [][]int) int {n : len(envelopes)if n 0 {return 0}sort.Slice(envelopes, func(i, j int) bool {a, b : envelopes[i], envelopes[j]return a[0] < b[0] || a[0] b[0] && a[1] > b[1]})f : …...
jmeter中添加ip欺骗
1、首先在本机电脑中通过配置文件创建添加ip的配置文件,先创建一个txt格式的,直接修改文件名以及后缀为ips.bat 2、编辑该ips.bat文件,在文件中输入如下内容,用于快速给本机添加ip地址,(2,1&…...
WPF篇(19)-TabControl控件+TreeView树控件
TabControl控件 TabControl表示包含多个共享相同的空间在屏幕上的项的控件。它也是继承于Selector基类,所以TabControl也只支持单选操作。另外,TabControl的元素只能是TabItem,这个TabItem继承于HeaderedContentControl类,所以Ta…...
appium下载及安装
下载地址:https://github.com/appium/appium-desktop/releases 双击安装就可以...
XSS项目实战
目录 一、项目来源 二、实战操作 EASY 1 2 3 4 5 6 7 8 一、项目来源 XSS Game - Learning XSS Made Simple! | Created by PwnFunction 二、实战操作 EASY 1 1.Easy -1 2.题目要求及源码 Difficulty is Easy.Pop an alert(1337) on sandbox.pwnfunction.com.No …...
SD-WAN降低网络运维难度的关键技术解析
为什么说SD-WAN(软件定义广域网)大大降低了网络运维的复杂性,主要是因为它的智能路径选择、应用识别和链路质量监测这三个核心技术。这几项在SD-WAN中尤为重要的技术,它们共同作用,提升了整体网络性能,为网…...
【算法基础实验】图论-最小生成树-Prim的即时实现
理论知识 Prim算法是一种用于计算加权无向图的最小生成树(MST, Minimum Spanning Tree)的贪心算法。最小生成树是一个连通的无向图的子图,它包含所有的顶点且总权重最小。Prim算法从一个起始顶点开始,不断将权重最小的边加入生成…...
LLama 3 跨各种 GPU 类型的基准测试
2024 年 4 月 18 日,AI 社区对 Llama 3 70B 的发布表示欢迎,这是一款最先进的大型语言模型 (LLM)。该型号是 Llama 系列的下一代产品,支持广泛的用例。该模型 istelf 在广泛的行业平台上表现良好,并提供了新…...
FreeRTOS 快速入门(五)之信号量
目录 一、信号量的特性1、信号量跟队列的对比2、两种信号量的对比 二、信号量1、二值信号量1.1 二值信号量用于同步1.2 二值信号量用于互斥 2、计数信号量 三、信号量函数1、创建2、删除3、give/take 一、信号量的特性 信号量(Semaphore)是一种实现任务…...
centos 服务器之间实现免密登录
为了在CentOS服务器之间实现免密登录,你需要使用SSH的公钥认证机制 比如两台centos系统的服务器A 和服务器B 首先我们实现从A服务器可以免密登录到服务器B上 首先生成公钥和秘钥: ssh-keygen -t rsa 生成了公钥和秘钥之后: ssh-copy-id r…...
RabbitMq实现延迟队列功能
1、rabbitmq服务端打开延迟插件 (超过 4294967295毫秒 ≈ 1193 小时 ≈ 49.7 天 这个时间会立即触发) 注意:只有RabbitMQ 3.6.x以上才支持 在下载好之后,解压得到.ez结尾的插件包,将其复制到RabbitMQ安装目录下的plug…...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...
return this;返回的是谁
一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请,不同级别的经理有不同的审批权限: // 抽象处理者:审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...
处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
