如何将svg文件加载到我的python烧瓶页面?

时间:2018-06-14 06:36:02

标签: python svg flask

所以我想把一个svg文件放到我的页面中(不是作为一个图像,作为一个xml元素) - 需要这样,所以我可以动态更改页面中的元素。

我制作了一个我认为会做的简单代码:

@app.route('/map_test/')
def test():
   svg = render_template('file.svg')
   response = make_response(svg)
   response.content_type = 'image/svg+xml'
   return render_template('test.html', svg=response)

和test.html:

{% block content %}
<section>
    {{ svg }}
</section>
{% endblock %}

....刚刚返回<Response 126181 bytes [200 OK]>而不是svg元素......

所以...我需要做些什么才能让它发挥作用?

2 个答案:

答案 0 :(得分:0)

from flask import Flask, render_template

app = Flask(__name__)


@app.route('/')
def hello_world():
   img = './static/download.svg'

   return render_template('index.html', img=img)


if __name__ == '__main__':
   app.run()

的index.html

<!DOCTYPE html>
<html lang="en">
<body>
<img src="{{ img }}">
</body>
</html>

将你的svg文件放在名为static

的dir中

答案 1 :(得分:0)

这就是诀窍:

@app.route('/map_test/')
def test():
   svg = open('file.svg').read
   return render_template('test.html', svg=Markup(svg))