【问题标题】:How can I draw diagrams from database in python如何在python中从数据库中绘制图表
【发布时间】:2016-01-23 12:01:48
【问题描述】:

如何使用 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 对这种建模很有用,但我完全不确定我将如何去做。

值得注意的是,我并不追求任何花哨的东西,只需将设备绘制为矩形并将连接绘制为矩形之间的线就足够了。

【问题讨论】:

标签: python django django-models modeling


【解决方案1】:

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

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

这很酷的一点是,blockdiag 有许多其他有用的库来完成这类任务,例如数据包和机架图。

【讨论】:

    【解决方案2】:

    由于您特别询问 Django,django-extensions 已经为您完成了繁重的工作。看看这个:

    http://django-extensions.readthedocs.org/en/latest/graph_models.html

    祝你好运!

    【讨论】:

    • 太棒了,对疯狂袋熊的回答来说是一个很好的补充。我一定会看看这个,谢谢
    【解决方案3】:

    如果您使用 Django 并且想要一些简单和静态的东西,您可以使用 Pillow 提供的 ImageDraw module 将图形绘制成图像(PIL 替代品) 然后将该图像包含在您的应用交付给客户端浏览器的网页中。

    当然,你可能听说过matplotlib

    【讨论】:

    • 这看起来是一个不错的选择,但是对于我想要实现的目标来说,它似乎相当不灵活。
    • 如果有帮助,我已经在我的答案中添加了一行
    【解决方案4】:

    我很确定没有现成的解决方案。查看 graphviz 库并制作管理命令以创建 DOT 图。这是一篇graphviz教程文章http://matthiaseisen.com/articles/graphviz/

    【讨论】:

    • 谢谢,这看起来是个不错的工具。我不介意为它编写代码(实际上这听起来很有趣),所以这可能是理想的。
    猜你喜欢
    • 2021-01-28
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-29
    • 1970-01-01
    相关资源
    最近更新 更多