Python 在jinja2中获取存储在变量中的svg

Python 在jinja2中获取存储在变量中的svg,python,svg,jinja2,Python,Svg,Jinja2,我正在尝试使用计算机获取字母数字编码的条形码。我得到了我需要的条形码,但是我无法使用Jinja2在我的HTML页面中显示它。这是我的密码: import barcode from StringIO import StringIO encoding_std = barcode.get_barcode_class('code128') ean = encoding_std('Test123') fp = StringIO() ean.write(fp) encoded_output = fp.ge

我正在尝试使用计算机获取字母数字编码的条形码。我得到了我需要的条形码,但是我无法使用Jinja2在我的HTML页面中显示它。这是我的密码:

import barcode
from StringIO import StringIO

encoding_std = barcode.get_barcode_class('code128')
ean = encoding_std('Test123')
fp = StringIO()
ean.write(fp)
encoded_output = fp.getvalue()
fp.close()
我目前将条形码存储为SVG,无法在HTML页面中显示。在HTML页面中使用
{{encoded_u-output | safe}}
显示条形码不会显示结果:


生成的条形码空间:

{{encoded_output}安全}

或者任何用于获取SVG的Jinja2过滤器?

生成的SVG输出包括一个XML头和doctype:

>>> print '\n'.join(encoded_output.splitlines()[:4])
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg
  PUBLIC '-//W3C//DTD SVG 1.1//EN'
  'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
打印'\n'.join(编码的输出.splitlines()[:4]) 虽然您的代码可以在Chrome中运行,但其他浏览器可能不会对包含的额外标题如此宽容。我将这些从生成的输出中拆分:

encoded_output = encoded_output[encoded_output.find('<svg'):]

encoded_output=encoded_output[encoded_output.find('您也能给我们看一下您的Jinja2代码吗?一个完整的测试页面就可以了(所以只有用来显示生成的SVG的标记)还有,你用的是什么
条形码
软件包?pyBarcode项目。我用的是viivakoodi库,该库的链接,我用的是这个库bcoz我用的是python27。我想pyBarcode不提供条形码的字母数字编码,所以我用的是这个库你的代码有效,至少当我用
|safe
和维瓦库迪图书馆。