生成整个Django Web应用程序的图表是否可能?

48

是否有可能生成整个Django网站的图表?例如,为了了解我使用的模型/数据库结构,我使用graphViz,它非常有用,可以跟踪模型结构,并且非常适用于讨论。

我想知道是否存在类似于上述工具,可以在图形化表示中展示urls/models/views/templates。我不太清楚那会是什么样子,但是我很想知道是否存在任何工具可以实现这一点。

这将以程序化的方式生成图表,显示站点不同部分之间的代码流程。


2
我已经开始开发一个解决这个问题的应用程序。目前它还很简陋,但是它可以从Django模型定义中生成交互式HTML图形,就像这个http://i.stack.imgur.com/lvxSG.png。 - user764357
2
不错!我现在正在查看。不幸的是,这个问题已经关闭了,否则我会建议将其添加为答案。 - djq
1
我刚刚也发布了一个解决方案,页面上还带有交互性:django-schema-graph它看起来像这样 - meshy
4个回答

41
你可以使用django-extensions 应用程序来生成模型可视化。 setting.py
INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    '...',

    'django_extensions',
    'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
)

在终端中输入此命令

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

这将生成一个名为 myapp_models.png 的 png 文件。它将有模型的可视化图像。可以在此处找到更多文档。


1
这通常很有用,但我对如何选择更多模型的建议感兴趣。 - djq
3
上面的链接已经失效了,请使用这个链接 graph-models - PeterN
不生成.png文件,错误结束于:ModuleNotFoundError: No module named 'django_extensions',我已经将'django_extensions'添加到INSTALLED_APPS中。 - parmer_110

33

据我所知,GraphModels仅适用于模型的UML而非完整应用程序。 - yeaske
请问,GraphModels 只能在 Linux 上成功安装吗?(在 Windows 10 上无法安装) - Tony Chou

8
我今天遇到了这个问题,然后我发现了 django-dia。如果你喜欢Dia的话,它看起来很不错!

错误信息:未将'manage.py'识别为cmdlet、函数、脚本文件或可操作程序的名称。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。 - parmer_110

0

你可以使用django-extension来生成应用程序模型,即数据库。同时,你也可以生成UML生成应用程序。


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