如何将django模板变量呈现为html?
我想要的是堆栈溢出。用户可以用HTML格式化他们的文本输入,页面应该以完全相同的方式呈现 < >我使用<代码> WMD .js<代码>来存储格式化的输入,考虑到我有一个上下文变量<代码> {{Value}}} /代码>字符串值<代码>“< P>某物”< /代码>。当我渲染模板时如何将django模板变量呈现为html?,django,string,django-templates,render,html,Django,String,Django Templates,Render,Html,我想要的是堆栈溢出。用户可以用HTML格式化他们的文本输入,页面应该以完全相同的方式呈现 < >我使用 WMD .js来存储格式化的输入,考虑到我有一个上下文变量 {{Value}}} /代码>字符串值“< P>某物”< /代码>。当我渲染模板时 {{variable}} outputs <p>something</p> and {{variable|safe}} also output <p>something</p> 景色 def deta
{{variable}} outputs <p>something</p>
and {{variable|safe}} also output <p>something</p>
景色
def detail(request,question_id):
q = get_object_or_404(Question,pk=question_id)
return render_to_response('CODE/detail.html',{'question':q},
context_instance = RequestContext(request)
)
这是问题的django管理页面,顺便说一下,我正在使用sqlite3
您可能希望使用来渲染它,而不是安全
{{ variable|escape }}
对于简单的HTML格式,请使用
{{{something}
。Javascript的方式是
<script type="text/javascript">
var variable = "<p>{{something}}</p>";
document.write(variable);
</script>
var variable=“{{something}”;
document.write(变量);
如果{{something}}
本身包含HTML标记,那么{{something}
本身应该可以工作,除非您有{%autoescape on%}
。有关更多筛选和格式设置,请参阅。使用标记:
我认为另一种方法是使用: 请注意,firstof标记中包含的变量不会被转义。这是因为模板标记不会转义其内容。打印变量中包含的任何HTML或Javascript代码都将按原样呈现,这可能会导致安全问题。如果需要转义firstof标记中的变量,则必须显式转义
那是什么东西?它是一个上下文变量吗?如果查看呈现页面的源代码,是否会看到
p%gt;something/
或something
?源代码显示something什么是答案。答案正文
在数据库中确切包含什么?它可能是双引号,或者可以包含wmd.js
在发送到服务器之前添加的转义字符。这样,它可能会破坏安全的
过滤器。好吧,假设一个用户输入像这样“hello world”,我实际上保存了输入像“hello world”,现在我想用输入呈现模板,所以我做了这个变量=“hello world”,{{variable};现在输出将是hello world,但我不希望标记显示为文本,我需要将其呈现为html标记,这意味着输出应该是html段落标记中的“hello world”。之所以这样做,是因为用户可以用这种方式格式化输入,所以输出将完全相同,就像堆栈溢出一样,当你发布一个问题时,你需要格式化你的输入,并且它将以相同的格式发布。那么你想要客户端预览吗?那么你不应该在你的问题中混用{{}
,它引用了响应提供的上下文变量。不,我得到了预览,我使用了wmd.js,但是在用户发布他们的问题后,如何以相同的方式呈现服务器响应???那么{variable | safe}
应该可以工作。你最好把你的密码发出去。你设置了{%autoescape on%}
?@rohan-他实际上希望它是分段的,而不是转义的。
<script type="text/javascript">
var variable = "<p>{{something}}</p>";
document.write(variable);
</script>
{% autoescape off %}{{ variable }}{% endautoescape %}
{% firstof variable %}