简单表仪表板

问题描述 投票:-1回答:2

我正在寻找创建以html表格形式的简单仪表板的指导

我有一个包含以下项目的文件夹

  1. 1个主机文件,它将仅包含IP但实际上是动态的,因此可以具有1个或n个主机
  2. 每个主机的json文件。因此,如果我在步骤1中提到的主机文件中有5个主机,则它们将是5个json文件,依此类推
  3. html每个主机的报告。因此,如果我在步骤1中提到的主机文件中有5个主机,则它们将是5个html文件,依此类推

所以我需要一个相同的代码,该代码从文件夹中读取可用主机数量的主机文件,然后基于它读取其相应的json文件,并在如下所示的仪表板示例中链接相应的html

**Server Hostname Report**

192.x.x.10 abc R1.html

192.x.x.11 aba R2.html

192.x.x.12 abb R3.html

192.x.x.13 aaa R4.html

192.x.x.14 cba R5.html

192.x.x.15 bba R6.html

enter image description here

这里是从json文件读取的主机名

python html ruby dashboard
2个回答
0
投票

我将使用python脚本执行此操作。

[首先,读取主机文件,并将所有主机收集到词典中(说出来。这里的键将是IP地址,而值将使用主机名和HTML文件名设置。)。然后,使用下面的get_all_files函数,我将收集所有JSON文件,并通过迭代这些文件从JSON文件读取主机名并将其放入对应的主机密钥的结果字典中进行迭代。与此类似,您可以浏览HTML文件并将其放入结果字典中。 (有关HTML文件的更多信息会有所帮助。)

import glob

def get_all_files(dir_path, extension):
    return glob(os.path.join(dir_path, '*.{}'.format(extension)))

一旦有了结果字典,就可以遍历该字典并创建HTML文件,并相应地添加HTML文本。

希望这会有所帮助,

KP


0
投票

将问题分解为更小的步骤。您基本上已经在问题描述中做到了这一点,但是在这里它被更明确地分开了。

  • 编写一个函数以读取主机文件。理想情况下,使其具有灵活性,以便它以文件路径作为参数,以便以后可以移动主机文件或在以后阶段将主机文件指向其他主机文件(如果需要)。明智的返回值是IP地址列表:["192.x.x.10", ..., "192.x.x.15"]

  • 现在我们有了IP地址列表,我们可以创建一个函数来处理单个IP地址并读取相关的JSON。我们称其为for循环以处理所有主机,无论有多少主机。鉴于我们稍后将填充一个表,一个有用的返回值将是表示一个单元格内容的元组。这使我们可以在单个列表理解中处理所有url,如下所示:table_row_tuples = [myFunction(url) for url in host_urls],其中host_urls是上一个项目符号的功能。 table_row_tuples将成为类似于[("192.x.x.10", "abc", "/myReportsFolder/R1.html", "R1.html"), ..., ("192.x.x.15", "bba", "/myReportsFolder/R6.html", "R6.html")]

  • 的列表
  • 最后,编写一个绘制HTML表的函数。它应该以元组列表作为参数,绘制表头,使用for循环将每个元组写入一行,最后结束表。

通过考虑如何将问题分解为更小的步骤,以及哪些数据结构可以方便地从一个步骤传递到另一个步骤,您的问题变得简单得多。

编辑:我的答案假设是在Python脚本中这样做的。但是,以较小的步骤解决问题并考虑方便的数据结构的基本概念适用于任何语言。

© www.soinside.com 2019 - 2024. All rights reserved.