django模板:将数据库响应文本读取为HTML

django-template: read database response text as HTML

本文关键字:文本 读取 HTML 响应 数据库 模板 django      更新时间:2023-09-26
  • 我正在收集用户输入,并将它们与html标签一起存储在数据库中以保留格式
  • 例如:来自数据库的响应可以是

asdsad <br/>- 12321312<br/>- 332423<br/>* e23ee<br/>$ dweqw

  • 通常我只关心断线
  • 在阅读django模板的回复时,我确实
 <div id="right_suggest_div" name={{ suggestion.key }}>   
   {{ suggestion.text }}  
   <p class="padding">Votes: {{ suggestion.votes }} </p>
 </div>

问题:-是否可以将suggestion.text渲染为html?

默认情况下,Django会用HTML实体替换">"answers"<"等符号。我想,让它跳过对HTML的转义可以纠正这种情况。
{% autoescape off %}
<div id="right_suggest_div" name={{ suggestion.key }}>   
   {{ suggestion.text }}  
   <p class="padding">Votes: {{ suggestion.votes }} </p>
 </div>
{% endautoescape %} 

或使用safe过滤器{{ suggestion.text|safe }}

这就是保险箱的作用。

<div id="right_suggest_div" name={{ suggestion.key }}>   
  {{ suggestion.text|safe }}  
  <p class="padding">Votes: {{ suggestion.votes }} </p>
</div>

但是,请考虑一下用户进入的情况

<script>//do so nasty stuff</script>

作为他们的输入。基本上,您将向用户提供这些内容。