0

0

使用 Python 绘制服务器机架图:从数据到可视化

花韻仙語

花韻仙語

发布时间:2025-09-03 22:22:05

|

869人浏览过

|

来源于php中文网

原创

使用 python 绘制服务器机架图:从数据到可视化

本文档旨在提供一种使用 Python 将服务器机架数据转换为可视化表示的方法。我们将探讨如何解析服务器位置数据,并使用 tabulate 库生成文本表格,以及如何将数据转换为 HTML 表格,最后介绍如何在 Flask 框架中利用模板引擎动态生成 HTML 表格。 本教程将提供代码示例和详细步骤,帮助您理解并实现服务器机架的可视化。

从数据到表格:使用 tabulate 生成文本表格

首先,我们需要将服务器机架的数据转换为 Python 可以处理的格式。通常,数据可能以文本文件的形式存在,例如:

servers1 - 15 - 17
server2 - 20 - 25
firewall - 2 - 4
NAS - 10 - 15

以下代码展示了如何读取这些数据,将其解析为 Python 字典和列表,并使用 tabulate 库生成文本表格:

import io
import tabulate
import collections

text = '''servers1 - 15 - 17
server2 - 20 - 25
firewall - 2 - 4
NAS - 10 - 15'''

# --- 读取数据到字典 ---
data = {}
counter = {}

with io.StringIO(text) as fh:
    for line in fh:
        line = line.strip()
        name, start, end = line.split(' - ')
        start = int(start)
        end = int(end)

        # - 统计每个设备占用的 U 数 -
        counter[name] = end-start+1

        for x in range(start, end+1):
            data[x] = name

# - 显示每个设备占用的 U 数 -
for name, number in counter.items():
    print(f'{name:10}: {number}')

# --- 转换为列表 ---
rows = []
last = max(data.keys())

for x in range(1, last+1):
    if x in data:
        name = data[x]
    else:
        name = '?'  # 使用 '?' 表示空闲位置
    rows.append([x, name])

# --- 显示表格 ---
print(tabulate.tabulate(rows, headers=['Nr', 'Device'], tablefmt='grid'))

# - 统计设备数量 -
counter = collections.Counter(data.values())

# - 显示设备数量 -
for name, number in counter.items():
    print(f'{name:10}: {number}')

这段代码首先读取文本数据,将其解析为字典 data,其中键是机架位置(U),值是该位置的服务器名称。然后,它将字典转换为列表 rows,其中每个元素都是一个包含位置编号和设备名称的列表。最后,使用 tabulate.tabulate() 函数生成一个格式化的文本表格。

立即学习Python免费学习笔记(深入)”;

注意事项:

  • 确保安装了 tabulate 库:pip install tabulate
  • 可以自定义 tablefmt 参数以更改表格的样式。
  • 代码中使用了 ? 来表示空闲位置,可以根据实际需求进行修改。

生成 HTML 表格

除了文本表格,还可以将数据转换为 HTML 表格,以便在 Web 页面上显示。以下代码展示了如何手动生成 HTML 表格:

table = "\n"

table += "  \n    \n    \n  \n"

for number, device in rows:
    table += f"  \n    \n    \n  \n"

table += "
NrDevice
{number}{device}
\n" print(table)

这段代码使用字符串拼接的方式构建 HTML 表格。它首先创建

网络工作室源码1.0
网络工作室源码1.0

网络工作室源码基于热腾CMS(RTCMS)定制,栏目全站自动调用,可设置生成为html静态文件。网站分类适合网络公司和工作室使用。程序中带有演示数据,如果全新安装,可将根目录下的/uploads 文件夹中的演示图片文件删掉。安装方式:上传upload_install中的文件上传到虚拟主机或服务器网站根目录下;访问 http://域名/ 即可安装,安装时可以选取“演示数据&

下载
标签,然后添加表头 ,其中包含位置编号和设备名称的
,最后遍历 rows 列表,为每个设备添加一行

另一种方法是使用 pandas DataFrame 的 to_html() 方法:

import pandas as pd

df = pd.DataFrame(rows, columns=['Nr', 'Device'])
html_table = df.to_html()
print(html_table)

这种方法更加简洁,但需要安装 pandas 库:pip install pandas

使用 Flask 模板引擎动态生成 HTML 表格

如果使用 Flask 框架,可以将数据传递给模板引擎,由模板引擎动态生成 HTML 表格。

首先,需要在 Flask 应用中将 rows 数据传递给模板:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
    # ... (前面的数据处理代码) ...
    return render_template('template.html', rows=rows)

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

然后,在 template.html 文件中使用 Jinja2 模板引擎循环遍历 rows 数据,生成 HTML 表格:



{% for number, device in rows %}
  
{% endfor %}

Nr Device
{{ number }} {{ device }}

注意事项:

  • 确保安装了 Flask 框架:pip install flask
  • render_template() 函数用于渲染模板,并将数据传递给模板。
  • Jinja2 模板引擎使用 {% ... %} 和 {{ ... }} 来控制流程和输出变量。

总结

本文档介绍了如何使用 Python 将服务器机架数据转换为可视化表示。我们学习了如何使用 tabulate 库生成文本表格,如何手动生成 HTML 表格,以及如何在 Flask 框架中使用模板引擎动态生成 HTML 表格。 这些方法可以帮助您更好地管理和监控服务器机架,并将其可视化呈现给用户。您可以根据实际需求选择合适的方法,并进行定制和扩展。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
Python Flask框架
Python Flask框架

本专题专注于 Python 轻量级 Web 框架 Flask 的学习与实战,内容涵盖路由与视图、模板渲染、表单处理、数据库集成、用户认证以及RESTful API 开发。通过博客系统、任务管理工具与微服务接口等项目实战,帮助学员掌握 Flask 在快速构建小型到中型 Web 应用中的核心技能。

86

2025.08.25

Python Flask Web框架与API开发
Python Flask Web框架与API开发

本专题系统介绍 Python Flask Web框架的基础与进阶应用,包括Flask路由、请求与响应、模板渲染、表单处理、安全性加固、数据库集成(SQLAlchemy)、以及使用Flask构建 RESTful API 服务。通过多个实战项目,帮助学习者掌握使用 Flask 开发高效、可扩展的 Web 应用与 API。

72

2025.12.15

Python 时间序列分析与预测
Python 时间序列分析与预测

本专题专注讲解 Python 在时间序列数据处理与预测建模中的实战技巧,涵盖时间索引处理、周期性与趋势分解、平稳性检测、ARIMA/SARIMA 模型构建、预测误差评估,以及基于实际业务场景的时间序列项目实操,帮助学习者掌握从数据预处理到模型预测的完整时序分析能力。

56

2025.12.04

pip安装使用方法
pip安装使用方法

安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。

339

2023.10.09

更新pip版本
更新pip版本

更新pip版本方法有使用pip自身更新、使用操作系统自带的包管理工具、使用python包管理工具、手动安装最新版本。想了解更多相关的内容,请阅读专题下面的文章。

412

2024.12.20

pip设置清华源
pip设置清华源

设置方法:1、打开终端或命令提示符窗口;2、运行“touch ~/.pip/pip.conf”命令创建一个名为pip的配置文件;3、打开pip.conf文件,然后添加“[global];index-url = https://pypi.tuna.tsinghua.edu.cn/simple”内容,这将把pip的镜像源设置为清华大学的镜像源;4、保存并关闭文件即可。

761

2024.12.23

python升级pip
python升级pip

本专题整合了python升级pip相关教程,阅读下面的文章了解更多详细内容。

349

2025.07.23

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

298

2023.08.03

Python 自然语言处理(NLP)基础与实战
Python 自然语言处理(NLP)基础与实战

本专题系统讲解 Python 在自然语言处理(NLP)领域的基础方法与实战应用,涵盖文本预处理(分词、去停用词)、词性标注、命名实体识别、关键词提取、情感分析,以及常用 NLP 库(NLTK、spaCy)的核心用法。通过真实文本案例,帮助学习者掌握 使用 Python 进行文本分析与语言数据处理的完整流程,适用于内容分析、舆情监测与智能文本应用场景。

10

2026.01.27

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.3万人学习

Django 教程
Django 教程

共28课时 | 3.6万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号