浏览 2948 次
锁定老帖子 主题:在Django中应用Graphviz
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-07-22
前阵子实习,在项目中用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!
是不是很简单呢。
具体效果可以看官网上的,我这里就不贴图了。
我在做的时候遇到几点
唯一的缺点好像是官方的讨论不够活跃啊。。不过google一下还是能解决的!
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |