django render_to_response如何发送特殊字符

riv*_*ivu 2 css python django django-templates render-to-response

我有一个字符串,它将显示在html文件中.字符串中的某些单词(标记为"spc")需要以黄色背景和较大的字体显示.

我试图使用render_to_response方法将字符串(称为tdoc)发送到html文件.我用div标签替换了字符串中的'spc'标签.假设,在更换后,部分字符串是 we would seldom be prepared to <div id="spcl">examine</div> every.我的django代码看起来像render_to_response('a.html',{'taggeddoc':tdoc})

在我的CSS中,我有以下代码

 #spcl {  
background-color: #FFFF00;  
font-size:15px;  
}  
Run Code Online (Sandbox Code Playgroud)

所以,我应该看到粗体字和黄色背景中的单词检查,但我没有看到.当我查看渲染的html的源代码时,它具有以下子字符串We would seldom be prepared to &lt;div id=&quot;spcl&quot;&gt;examine&lt;/div&gt; every而不是原始字符串.

如何以所需方式显示"检查"和类似词语?

fal*_*tru 5

使用mark_safe以防止HTML逃生:

from django.utils.safestring import mark_safe

...

render_to_response('a.html', {'taggeddoc': mark_safe(tdoc)})
Run Code Online (Sandbox Code Playgroud)

或者safe在模板中使用过滤器:

{{ taggeddoc|safe }}
Run Code Online (Sandbox Code Playgroud)

例:

>>> from django.utils.safestring import mark_safe
>>> from django.template import Template, Context

# without mark_safe, safe
>>> print(Template('{{ taggeddoc }}').render(Context({'taggeddoc': '<div>hello</div>'})))
&lt;div&gt;hello&lt;/div&gt;

# mark_safe
>>> print(Template('{{ taggeddoc }}').render(Context({'taggeddoc': mark_safe('<div>hello</div>')})))
<div>hello</div>

# safe filter
>>> print(Template('{{ taggeddoc|safe }}').render(Context({'taggeddoc': '<div>hello</div>'})))
<div>hello</div>
Run Code Online (Sandbox Code Playgroud)