我具有使用PrettyTables收集有关用户拥有的虚拟机的信息的功能。目前,它仅显示信息并且运行良好。我有一个新的想法,我想在新列中添加一个按钮,以允许用户重新启动虚拟机。我已经知道如何重新启动虚拟机,但是我要努力找出的是创建数据集的最佳方法,我可以对其进行迭代,然后创建HTML表。我过去在PHP / SQL中做过类似的事情,这很简单。我认为我无法遍历PrettyTables,所以我想知道我的最佳选择是什么?漂亮的表在简化表的创建方面做得非常好(如下所示)。我希望使用另一种方法,但也要使其非常简单。基本上,使其具有关联性并且易于迭代。欢迎其他任何建议。谢谢!
这是我当前的代码:
x = PrettyTable()
x.field_names = ["VM Name", "OS", "IP", "Power State"]
for uuid in virtual_machines:
vm = search_index.FindByUuid(None, uuid, True, False)
if vm.summary.guest.ipAddress == None:
ip = "Unavailable"
else:
ip = vm.summary.guest.ipAddress
if vm.summary.runtime.powerState == "poweredOff":
power_state = "OFF"
else:
power_state = "ON"
if vm.summary.guest.guestFullName == None:
os = "Unavailable"
else:
os = vm.summary.guest.guestFullName
x.add_row([vm.summary.config.name, os, ip, power_state])
table = x.get_html_string(attributes = {"class":"table table-striped"})
return table
这里是一个外观示例,也是我计划使用该按钮的示例。 http://prntscr.com/nki3ci
答案 0 :(得分:0)
弄清楚如何查询prettytable。这是一个很小的补充,无需重做。
html = '<table class="table"><tr><th>VM Name</th><th>OS</th><th>IP</th><th>Power
State</th></tr>'
htmlend = '</tr></table>'
body = ''
for vmm in x:
vmm.border = False
vmm.header = False
vm_name = (vmm.get_string(fields=["VM Name"]))
operating_system = (vmm.get_string(fields=["OS"]))
ip_addr = ((vmm.get_string(fields=["IP"])))
body += '<tr><td>'+ vm_name + '</td><td>' + operating_system + '</td> <td>'+ ip_addr +'</td> <td>ON</td></tr>'
html += body
html += htmlend
print(html)