美文网首页Django学习djangodjango.tip
Django:自动绘制数据模型关系图

Django:自动绘制数据模型关系图

作者: 治部少辅 | 来源:发表于2016-06-18 13:51 被阅读1886次

    前两天需要办理一个项目交接,其中需要给维护人员提供一份数据库的模型关系图。事实上Django代码自身已经充分定义了不同Model之间的关系,我想应该是有通用的工具来执行这一操作的。经过一番Google之后,现将教程列出如下。我用的是macOS系统,至于Linux,方法的思路应该类似的。

    安装工具

    要实现自动绘制数据模型关系图,我们需要使用django的一个第三方app,名为django_extensions。这个库可以通过pip来安装。安装完成后将其添加到django的INSTALLED_APPS中:

    INSTALLED_APPS = (
        ...
        'django_extensions',
        ...
    )
    

    在开始使用这个库之前,我们还需要安装一个依赖,核心就是这个app绘图需要依赖的工具。

    首先通过brew来安装graphviz

    $ sudo brew update
    $ sudo brew install graphviz
    

    然后安装下面这些用来绘制最终结构图的python包

    $ pip install pygraphviz
    

    如果这一安装过程中出现了没有找到graphviz头文件的错误,你可以从官网下载源码,然后手动指定graphviz的路径来安装:

    python setup.py install --include-path=... --library-path=...
    

    实在不行的话可以选择Pydot作为绘图的库

    $ pip install pyparsing==1.5.7
    $ pip install pydot
    

    使用

    上述步骤完成后就可以开始绘制数据结构图了:

    python manage.py graph_models -a -o models.png
    

    下面的图给出了一个例子:

    数据结构图示例

    我之前曾写过一个Django的问卷的Model设计范例。这个范例模型绘制出来的图形局部如下:

    Django问卷的数据模型关系图

    相关文章

      网友评论

      本文标题:Django:自动绘制数据模型关系图

      本文链接:https://www.haomeiwen.com/subject/oizvdttx.html