Jinja2比chars更糟糕

时间:2013-07-04 14:31:28

标签: python flask jinja2

所以在Jinja2中我有这段代码:

<div id='posts'>
    <!-- Display all posts -->
    {% for p in posts %}
        <div class='post'>
            <h3>{{ p[1] }}</h3>
            {{ p[2] }}  
        </div>
    {% endfor %}
</div>  

p[2]在这里很重要。它只是一个值为"<p>content</p> <b>bold</b>"的unicode字符串。我希望它显示为html,但是当我加载页面时,这就是它的显示方式:

It it displaying improperly

但是,当我查看页面源时,它看起来像这样:

&lt;p&gt;content&lt;/p&gt; &lt;b&gt;bold&lt;/b&gt;

我想要的只是显示为普通的HTML。我有一种感觉,这是一些奇怪的编码问题,我对此知之甚少。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:2)

这是autoescaping。它可以保护您免受XSS注入等攻击。

如果您确定自己的内容是安全的,可以使用

将其关闭
{% autoescape false %}...{% endautoescape %}