graphviz를 이용해서 그림을 그리고, flask로 웹으로 보냅시다.

최대 1 분 소요

graphviz로 그림 그리기.

  • 저는 보통 그냥 networkx로 그림을 그리지만, 경우에 따라서는 graphviz로 그림을 그릴때도 있습니다.
  • 여기서는, graphviz로 그림을 그리고, 이를 버퍼에 저장해서 바로 웹으로 보내주는 것을 정리하였습니다.

code

  • 다음처럼 간단하게 파이썬 코드를 만들구요.
from flask import Flask, render_template
from flask import Markup

from graphviz import Graph# Graph를 만들어줍니다.

app = Flask(__name__)

@app.route("/test")
def test():
    from graphviz import Digraph, Graph
    g = Digraph('hello', format='svg')
    g.edge('Hello', 'World')
    g_svg = g.pipe().decode("utf-8")
    g_svg = Markup(g_svg)
    return render_template("test.html", g_svg=g_svg
    )

if __name__ == '__main__':
    # debug를 True로 세팅하면, 해당 서버 세팅 후에 코드가 바뀌어도 문제없이 실행됨. 
    app.run(host='127.0.0.1', port=8001, debug = True)
  • 다음처럼 Html 파일읆 만들면 끝납니다.

<html>
    <head>
    </head>
    <body>
        {{g_svg}}
    </body>
</html>

wrap-up

댓글남기기