【Dash】Web 应用程序中的可复用组件

news2024/9/27 9:29:46

一、Reuable Comopnents

By writing our makup in Python, we can create complex reusable components like tables without switching contexts or languages.

from dash import Dash, html
import pandas as pd

df = pd.read_csv('https://raw.githubusercontent.com/GarciaShanCW/DATA/main/usa-agricultural-exports-2011.csv')

def generate_table(dataframe, max_rows=10):
    return html.Table([
        html.Thead(
            html.Tr([html.Th(col) for col in dataframe.columns])
        ),
        html.Tbody([
            html.Tr([
                html.Td(dataframe.iloc[i][col]) for col in dataframe.columns
            ]) for i in range(min(len(dataframe), max_rows))
        ])
    ])


app = Dash(__name__)

app.layout = html.Div([
    html.H4(children='US Agriculture Exports (2011)'),
    generate_table(df)
])

if __name__ == '__main__':
    app.run(debug=True)

二、解读

from dash import Dash, html
import pandas as pd

df = pd.read_csv('https://raw.githubusercontent.com/GarciaShanCW/DATA/main/usa-agricultural-exports-2011.csv')
  • 导入 Dash 类 (创建应用程序)和 html 组件(创建 HTML 元素)
  • 导入 pandas 库,用于数据处理
  • pd.read_csv() 函数 读取 URL 的数据文件,存储在 DataFrame 对象 df 中
def generate_table(dataframe, max_rows=10):
    return html.Table([
        html.Thead(
            html.Tr([html.Th(col) for col in dataframe.columns])
        ),
        
        html.Tbody([
            html.Tr([
                html.Td(dataframe.iloc[i][col]) for col in dataframe.columns
            ]) for i in range(min(len(dataframe), max_rows))
        ])
    ])

def generate_table(dataframe, max_rows=10):

  • 定义一个名为 generate_table 的函数,接受一个 dataframe 和一个可选参数 max_rows(默认为10)。生成一个 HTML 表格。

return html.Table([....])

  • 返回一个 html.Table 组件,包含一个表头 html.Thead 和 一个表体 html.Tbody。

html.Thead(html.Tr([html.Th(col) for col in dataframe.columns])),

  • html.Thead:创建 HTML 中的 <thead> 元素,它是表格的头部区域,通常包含列标题
  • html.Tr:创建 HTML 中的 <tr> 元素
  • [html.Th(col) for col in dataframe.columns]:遍历所有列名,对于每个列名 col,html.Th(col) 创建一个表头单元格,包含该列的名称
  • html.Th(col):用于创建 HTML 中的 <th> 元素,即表格中的表头单元格。

html.Tr([ html.Td(..)]) for i in range(min(len(dataframe),max_rows))

  • Python 中的一个列表推导式,它用于生成一个表格行(html.Tr)的列表,其中每个行包含若干个表格单元格(html.Td)。这个结构在 Dash 应用程序中用来构建动态生成的表格数据。
  • html.Tr:这是 Dash 中创建 HTML 表格行 <tr> 的函数。
  • html.Td():这是 Dash 中创建 HTML 表格单元格 <td> 的函数,用于存放数据。
  • [html.Td()]:这是一个列表,包含一个 html.Td 组件实例。这个列表可以包含多个 html.Td 实例,每个实例代表表格中的一个单元格。
  • for i in range(...):这是一个循环,range(...) 函数生成一个起始默认为 0 的序列,长度由提供的参数决定。循环变量 i 将用于索引数据或其他用途。

html.Td(dataframe.iloc[i][col]) for col in dataframe.columns

  • 表头由列名组成,表体由行组成,每行包含列的值。
  • dataframe 是一个 pandas DataFrame 对象,是一个二维表格数据结构,类似Excel表格
  • iloc 是 DataFrame 的一个索引器,用于基于行的整数位置选择行
  • col 是一个列名,它将用于从 DataFrame 中选择列数据
  • min(len(dataframe), max_rows) 确保即使 DataFrame 中的行数超过 max_rows,也只显示前 max_rows 行。

app = Dash(__name__)

app.layout = html.Div([
    html.H4(children='US Agriculture Exports (2011)'),
    generate_table(df)
])
  • 设置 app 的布局,使用 html.Div 组件包裹所有子组件。布局中包括一个标题 html.H4,显示 "US Agriculture Exports (2011)",以及调用 generate_table 函数生成的表格,该表格显示了 df DataFrame 的数据。

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

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

相关文章

程序包javax.annotation不存在

1、问题 程序包javax.annotation不存在2、原因 JDK1.8升级到17后&#xff0c;由于Java EE已经变更为Jakarta EE&#xff0c;包名以 javax 开头的需要改为 jakarta 3、解决 import javax.annotation.Resource; 替换成 import jakarta.annotation.Resource; 问题解决。 …

基于STM32开发的智能灌溉系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 初始化代码控制代码应用场景 农业灌溉园艺灌溉常见问题及解决方案 常见问题解决方案结论 1. 引言 智能灌溉系统通过监测土壤湿度和环境条件&#xff0c;自动控制水泵和阀门&#xff0c;实现…

Linux系统驱动(十)设备树

文章目录 一、简介二、设备树语法&#xff08;一&#xff09;设备树的组成1. 节点的组成&#xff08;1&#xff09;节点的别名&#xff08;2&#xff09;节点可以被引用&#xff08;3&#xff09;同名节点的合并 2. 属性的组成&#xff08;1&#xff09;值的字符串表示形式&…

基于STM32开发的停车场管理系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 初始化代码控制代码应用场景 商业停车场管理住宅区停车场管理常见问题及解决方案 常见问题解决方案结论 1. 引言 停车场管理系统通过监测车辆进出情况、空余车位数量以及收费情况&#xff0…

7.2 算法设计与分析-分治法和回溯法

分治法 相对简单&#xff0c;考的概率比较低 分治法&#xff1a;对于一个规模为的问题&#xff0c;若该问题可以容易地解决则直接解决&#xff1b;否则将其分解为k个规模较小的子问题&#xff0c;这些子问题互相独立且与原问题形式相同&#xff0c;递归地解决这些子问题&…

Proxmox Install 8

Proxmox 前言 Proxmox Virtual Environment(简称PVE)是一个开源的服务器虚拟化解决方案,它基于QEMU/KVM和LXC技术。Proxmox VE提供了一个易于使用的Web界面和命令行工具,允许用户轻松地创建和管理虚拟机(VMs)和容器。 Proxmox download Proxmox 官网下载Proxmox 百度网…

Midjourney入门-提示词基础撰写与公式

​ 前言 在前几篇教程里我们已经可以初步使用Midjourney进行出图了。 包括也了解了Midjourney的指令与参数。 但如果你想用Midjourney去生成各种各样高质量的图片&#xff0c; 并且生成的图片是你想要的画面内容&#xff0c;也就是更好控制生成图片的画面内容与风格&#xf…

电脑小白需要知道这些

电脑小白需要知道这些 解决问题 对于刚买到电脑&#xff0c;不懂电脑的新手需要学什么和知道什么&#xff0c;有什么是误区 需要知道 1.Wiodws 10\Windows11不在需要安装杀毒软件 甚至于电脑自带防火墙都可以关闭&#xff08;有时候打开了防火墙反而导致一些奇奇怪怪的问题…

【书生大模型实战营】基础岛-浦语提示词工程实践

【书生大模型实战营】基础岛-浦语提示词工程实践 活动地址&#xff1a;地址 任务 背景问题&#xff1a;近期相关研究发现&#xff0c;LLM在对比浮点数字时表现不佳&#xff0c;经验证&#xff0c;internlm2-chat-1.8b (internlm2-chat-7b)也存在这一问题&#xff0c;例如认为…

生成式AI,在中国工业找到新“活法”

生成式AI&#xff0c;正在经历一场关于落地前景的论战。 在德国中北部城市希尔德斯海姆&#xff0c;世界工业巨头博世已经把生成式AI技术用在了生产线上。他们以AI仿真绘制的方式合成出超过15000张关于产品缺陷的图片&#xff0c;然后将其应用于电机定子生产线的质检。借助生成…

指针基础知识(笔记)

文章目录 1. 概念理解2. 空指针和野指针3. 计算4. 小结5. size_t6. 案例一: 指针查找并返回指定元素索引7. 指针访问多维数组(涉及 int (*ptr)[3]解析)8. 指针数组9. 函数的值传递与地址引用传递① 函数的值传递(pass by value)② 地址传递(pass by reference) 10. 案例二&…

初学Vue

1.v-text 2.v-html 可以解析标签 3.v-pre 4.class绑定 1.字符串绑定 效果 2.对象绑定 效果 3.数组 还可以用data数据带class加上去 4.三元表达式 5.style绑定 1.字符串 2.对象绑定 3.数组绑定 6.计算属性 调用函数 函数如下 面试&#xff1a;计算属性特点 只要值 没有改变…

【Week-G7】Semi-Supervised GAN 实践,使用MNIST数据集

文章目录 一、基础知识二、代码实现2.1 导入所需模块 & 设置网络初始参数2.2 初始化权重2.3 定义算法模型2.4 配置模型2.5 训练模型2.6 训练结果 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导…

使用 Claude3.5 只需 2 分钟快速构建仪表盘

这是用 claude 生成的图表&#xff0c;只花了 2 分钟 目录 Claude何时使用Artifacts&#xff1f;我如何使用Artifacts&#xff1f;我的例子让claude导出本地部署结尾 关键还可以分享 这是分享之后的链接&#xff1a; https://claude.site/artifacts/1cf37377-1d00-4ab2-b8dd-a…

PMP考试一定要考到3A吗?怎么备考?

PMP&#xff08;Project Management Professional&#xff09;认证是全球公认的项目管理专业人士资格认证&#xff0c;它代表着项目管理领域的高水平标准。 在备考PMP考试时&#xff0c;有些赛宝关心是否需要考到3A&#xff08;即三个领域均为Above Target&#xff0c;超出目标…

【中项】系统集成项目管理工程师-第10章 项目整合管理-10.7结束项目或阶段

前言&#xff1a;系统集成项目管理工程师专业&#xff0c;现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试&#xff0c;全称为“全国计算机与软件专业技术资格&#xff08;水平&#xff09;考试”&…

[Python学习日记-3] 编程前选择一个好用的编程工具

[Python学习日记-3] 编程前选择一个好用的编程工具 简介 PyCharm IDE的安装 PyCharm IDE安装后的一些常规使用 简介 在踏上 Python 编程的精彩旅程之前&#xff0c;选择一款得心应手的编程工具无疑是至关重要的一步。这就如同战士在出征前精心挑选趁手的武器&#xff0c;它将…

Unity补完计划 之 音效

本文仅作笔记学习和分享&#xff0c;不用做任何商业用途 本文包括但不限于unity官方手册&#xff0c;unity唐老狮等教程知识&#xff0c;如有不足还请斧正 首先&#xff0c;音频这块组件较少&#xff0c;但是内容很重要&#xff0c;因为对于任何一款非特殊面向人群的游戏来说&a…

SQLiteStudio 连接sqlite3数据库(真机数据库可视化调试)

SQLiteStudio安装 官网链接&#xff1a;https://sqlitestudio.pl/ 下载后&#xff0c;直接按部就班&#xff0c;打开即可使用 用户手册&#xff08;工具如何使用直接看这份就可以了&#xff09;&#xff1a;https://github.com/pawelsalawa/sqlitestudio/wiki/User_Manual 其…

GoFly快速开发框架代码市场使用说明

说明 我们框架坚持开源的项目绝不能存在收费项目&#xff0c;所以我们gofly快速开发开源版没有内置代码仓插件&#xff0c;因此需要使用代码市场中的代码包需要再企业版中使用&#xff0c;代码市场插件如下&#xff1a; 图1、社区-代码市场​​​​ 他和企业版管理后台的代码仓…