django render_to_response 如何发送特殊字符
Posted
技术标签:
【中文标题】django render_to_response 如何发送特殊字符【英文标题】:django render_to_response how to send special characters 【发布时间】:2013-09-13 14:51:59 【问题描述】:我有一个要显示在 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;
所以,我应该看到以粗体和黄色背景显示的 examine 一词,但我没有看到。当我查看呈现的 html 的源代码时,它具有以下子字符串 We would seldom be prepared to &lt;div id=&quot;spcl&quot;&gt;examine&lt;/div&gt; every
而不是原始字符串。
如何使“检查”一词和类似的词以所需的方式显示?
【问题讨论】:
【参考方案1】:使用mark_safe
防止html转义:
from django.utils.safestring import mark_safe
...
render_to_response('a.html', 'taggeddoc': mark_safe(tdoc))
或者在模板中使用safe
过滤器:
taggeddoc|safe
例子:
>>> 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>')))
<div>hello</div>
# 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>
【讨论】:
太棒了,我自己写得再好不过了。那假设,我可以! :P以上是关于django render_to_response 如何发送特殊字符的主要内容,如果未能解决你的问题,请参考以下文章
Django 与 Mako Jinja2 模板比较的集成使用:render_to_response。问题?
django - render_to_response - 渲染了一些东西
如何使用 render_to_response 在 Django 中的 div 中呈现 html 页面? [复制]
如何使用 render_to_response 在 Django 中的 div 中呈现 html 页面? [复制]