如何让变量中的html标签生效?

时间:2016-01-27 18:35:24

标签: html python-2.7 variables tags markdown

我的代码看起来像这样

的Python:

render = web.template.render('templates/', base="layout")
.
.
.
fileout_text = codecs.open(filename_text, 'r', 'utf-8').read()
text = markdown.markdown(fileout_text)
return render.text_temple(text=text)

text_template.html

$def with text
     < text>$text < /text>

现在$text应该包含html标记而不是markdown语法。

我的问题是,当网站显示时,标签会保留为文本 - 为什么会这样?

2 个答案:

答案 0 :(得分:0)

您的模板系统正在转发HTML作为安全措施。您需要告诉模板Markdown的HTML输出是&#34;安全&#34;。根据您的代码,我假设您使用的是web.py. web.py docs州:

  

默认情况下,Templetor使用web.websafe过滤器进行HTML编码。

>>> render.hello("1 < 2")
"Hello 1 &lt; 2"
     

关闭过滤器使用:$。之后。例如:

The following will not be html escaped.
$:form.render()

所以在你的模板中试试这个:

$def with text
     < text>$:text < /text>

添加冒号($:text)将告诉模板系统不要转义HTML。

如果我猜错并且您没有使用web.py,请告诉我们您使用的是哪个模板系统,也许我们可以为您指出正确的解决方案。虽然现在您已经知道问题所在,但您可以搜索该模板系统的文档并自己找到答案。

答案 1 :(得分:-1)

打印出您的变量,以确定您没有对html标记进行编码。

可能是&#34; <&#34;编码为&lt;和&#34; >&#34;编码为&gt;,这就是它在您的浏览器中显示HTML代码的原因。