Django 的模板变量被解释为 HTML
Posted
技术标签:
【中文标题】Django 的模板变量被解释为 HTML【英文标题】:Django's template variable gets interpreted as HTML 【发布时间】:2013-08-13 01:46:32 【问题描述】:当DEBUG=True
包含html 的变量只是打印在模板中并且不 插入为HTML。这是正确的行为。
另一方面,当DEBUG=False
(只是改变这个)变量的内容被解释为HTML,我不明白为什么。我没有使用safe
过滤器。
我的模板如下:
<pre id="copy-source- forloop.counter ">
<code> code </code>
</pre>
在一种情况下,code
恰好是 HTML 代码,具体来说:
<a href="blabla"><img src="bblabla" /></a>
页面显示图像而不是代码,即使它在预代码中!?
【问题讨论】:
你用的是什么 django 版本? @alecxe: 1.5.1,抱歉没有包括在内。 @alecxe:更新了问题。谢谢 【参考方案1】:试试这个
% autoescape off %
var_containing_html
% endautoescape %
我希望这会有所帮助。 祝你好运。
附:另见docs
【讨论】:
我认为它有效,但事实并非如此。我会用更多细节更新问题。 更新了问题。谢谢 你试过 % autoescape on % 吗?然后&lt;
和&gt;
符号将被转义,看起来像&lt;
和&gt;
,不会被浏览器解释为html,所以用户可以看到代码。
是的,但令人惊讶的是它不起作用。我仍然看到图像。相反,如果我关闭DEBUG
,我会看到代码!我在这里变得疯狂......以上是关于Django 的模板变量被解释为 HTML的主要内容,如果未能解决你的问题,请参考以下文章