前阵子实习,在项目中用Graphviz画依赖图,感觉效果不错。在这里分享下。
具体Graphviz的介绍,把基本的命令行语句,Gallery的例子看看,马上就可以上手了。
在Django中应用Graphviz也相当简单,应用Template可以写出很漂亮的代码,结构十分清晰。
首先定义一个模板:
file_template = """
{{file.name}}[style=filled, color=green];
{% if file.dependcy_app %}
node[color=deepskyblue, style=filled]
{{file.dependcy_app.name}}->{{file.name}};
{% endif %}
{% if file.depency_resource.all %}
{% for app in file.depency_resource.all %}
{{file.name}}->{{app.name}}
{% endfor%}
{% endif %}
"""
然后渲染模板
request = Context({'file': file,})
dot = head_template
t = Template(file_template)
dot += '\n' + t.render(request) + tail_template
generate(file, dot)
生成图片
file = open(filename, 'w')
file.write(dot)
file.close()
cmd = "%(path)s/dot -Tpng %(input)s -o %(output)s" %{'path':bin_path, 'input':filename, 'output':outfilename}
os.system(cmd)
ok done!
是不是很简单呢。
具体效果可以看官网上的,我这里就不贴图了。
我在做的时候遇到几点
- subgraph的名称好像只能用cluster开头
- 假如有两个a->b的话,就有2条线,如果不想要的话,graph前面加上个strict就行了
- 生成图片的格式是svg的话,可以点击跳转~~cool
- 可以为图片生成一个title
唯一的缺点好像是官方的讨论不够活跃啊。。不过google一下还是能解决的!
分享到:
相关推荐
使用 Docker 部署 Django web 应用.zip使用 Docker 部署 Django web 应用.zip使用 Docker 部署 Django web 应用.zip使用 Docker 部署 Django web 应用.zip使用 Docker 部署 Django web 应用.zip使用 Docker 部署 ...
基于Django快速开发Web应用
Django是一个开源的Web应用框架,由Python写成。 Django Web框架还提供高级功能,例如ORM,数据库迁移,用户身份验证,管理面板和表单。 Django程序员喜欢该框架,因为它具有简化数据库工作的功能。它加快了开发过程...
demo-allauth-bootstrap, Django 示例应用程序,包括通过 Django AllAuth提供社会认证的用户 demo-allauth-bootstrap简单,out-of-the-box Django 网站带有访问者( 无登录) 区域和用户( 需要登录) 区域,它的中注册...
这无疑会进一步推动Python Web开发框架一哥Django在国内的普及和应用。为此小编我是真心高兴。如果你在学习Django框架,现在又多了个理由坚持下去。这么多年PHP主导国内Web开发就在于其中文文档丰富,框架很多,现成...
django-crudbuilder, 在 Django 中,通用CRUD实现 crudbuilder在 Django 中使用 Django tables2列出对象的通用CRUD实现。文档https://django-crudbuilder.readthedocs.org/en/la
django高级应用(url和view优化)
RabbitMQ与Django 在Django Web应用程序中结合使用Microservices和RabbitMQ的示例
Django 中文文档 Django 中文文档 Django 中文文档 Django 中文文档
为热爱学习的小伙伴提供django4.0官方文档,
Python Django Web典型模块开发实战_用Django REST framework实现豆瓣API应用_编程项目案例实例详解课程教程
一个简单的 Django 应用程序,使用自动完成小部件在 django admin 中呈现列表过滤器。这个应用程序深受dal-admin-filters 的启发。 概述: Django 预装了一个管理面板,这是一个创建快速 CRUD 的好工具。2.0 版带有...
django-suit-dashboard, 在 Django 管理界面中创建仪表板 Django 套装仪表板 在...这个应用程序最初设计为在 Django 中工作,但是现在与它分离,你可以使用它,而不需要进行任何操作。下面是对它如何工作的快速说明:你
django中文文档的介绍,django 官方文档说明 django 官方文档说明 django 官方文档说明
Django中文手册Django中文手册Django中文手册Django中文手册Django中文手册
Django REST framework 中文文档,Django REST framework 中文翻译文档,Django REST framework 中文翻译
2022年2月18日,Django 版本已经到了4.0.3 ,这是最新的中文官方文档,网页版的,可以直接本地查看的。网上貌似最新的是 Django 2.1版本的官方文档,做成电子书,Django每个版本差异较大,最好看最新的,相信有关...
你所需要知道的关于 Django 的一切。
教程 通过手把手地方式教你一步步的创建一个 Web 应用。如果你初学 Django 或编程,请从这里开始。也请看看下面的 "快速入门"。 专题指南 在相当高的层次上介绍关键主题和概念,并提供有用的背景信息和解释。 参考...