如何在Python中从数据库绘制图表

7

我该如何使用Python在数据库中可视化建模?

我有一个Django项目,目前在管理视图中对我的家庭网络进行建模。它目前描述了有哪些设备以及它们连接到了什么。例如:

Devices:
    Computer1
    Computer2
    Laptop1
    Mobile1
    Router1
    ROuter2

ConnectionTypes:
    Wireless24ghz
    Wireless5ghz
    cat5
    cat5e
    cat6

Connections:
    host1:
        src:Computer1
        dst:Router1
        con_type:cat5e
    trunk1:
        src:Router1
        dst:Router2
        con_type:cat6
    host2:
        src:Mobile1
        dst:Router1
        con_type:Wireless24ghz

数据库比这个稍微复杂一些,但是现在我将其简单化,因为它并不那么重要。我想知道的是,如何使用Python代码以图形化方式对网络进行建模,以查看数据库表?通过图形化建模,我的意思是类似于Visio图表的东西,可以看到它(不一定,但是非常好的额外加分项),可以通过网页或应用程序与之交互。是否有任何现有的Python库提供此类功能?我知道JavaScript很适合这种建模,但我完全不知道该如何做。值得注意的是,我不需要任何花哨的东西,只需将设备绘制为矩形,将连接作为线条连接矩形即可。

可能与Django-模型图形表示(ERD)重复。 - Celeo
4个回答

3

谢谢,看起来是个不错的工具。我不介意为它编写代码(事实上听起来相当有趣),所以这可能是理想的选择。 - JamoBox

3

1
太棒了,这是Mad Wombat回答的一个不错的补充。我一定会看看这个,谢谢。 - JamoBox

2
如果您正在使用Django并希望使用简单静态的图形,可以使用Pillow提供的ImageDraw模块将图形绘制成图像,然后将该图像包含在应用程序提供给客户端浏览器的Web页面中。
另外,您当然可能听说过matplotlib

这看起来是一个不错的选择,但对于我想要实现的目标来说似乎相当不灵活。 - JamoBox
我已经在我的回答中添加了一行,如果有帮助的话。 - Pynchia

0
作为一种替代方案,我一直在使用blockdiag的nwdiag库来在代码中创建网络图。

http://blockdiag.com/en/nwdiag/

这个很酷的事情是,blockdiag还有许多其他有用的库可以用于这种任务,例如数据包和机架图。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接