Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将django模板变量呈现为html?_Django_String_Django Templates_Render_Html - Fatal编程技术网

如何将django模板变量呈现为html?

如何将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

我想要的是堆栈溢出。用户可以用HTML格式化他们的文本输入,页面应该以完全相同的方式呈现

< >我使用<代码> WMD .js<代码>来存储格式化的输入,考虑到我有一个上下文变量<代码> {{Value}}} /代码>字符串值<代码>“< P>某物

”< /代码>。当我渲染模板时

{{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 %}