svg图片在django

时间:2015-07-27 15:32:30

标签: python html django svg

我有一个视图,获取“.svg”的entry_nr图像(不用担心这个),看起来有点像这样:

def svg_image(request, entry_nr):
    svg_string = utils.DrawSVG.get_svg(entry_nr)
    return HttpResponse(svg_string)

这样的网址就是:

url(r'^images/(?P<entry_nr>[0-9]+)/$', views.svg_image, name='svg_image')

当我在浏览器中为给定的entry_nr加载网址时,我可以看到.svg - 它有效。但出于某种原因,当我刷新页面时,图像消失了,我必须重新启动服务器才能再次看到它。

为什么会这样?

最终,使用.svg<img src="/location/images/{{memb.EntryNr}}>"加载到模板中(其中memb.EntryNrentry_nr),现在图像根本不加载。我假设这是出于同样的原因。

编辑: get_svg函数使用第三方python库的render函数呈现.svg,然后返回字符串。 render函数需要一个文件保存到:

def get_svg(renderable_object):
    t = tempfile.NamedTemporaryFile(suffix=".svg")
    renderable_object.render(t.name)
    t.file.seek(0)
    svg_string = t.read()
    t.close()
    return svg_string

此外,当我刷新entry_nr页面时(如上所述),我在终端上多次收到此消息:QObject::startTimer: QTimer can only be used with threads started with QThread

0 个答案:

没有答案