【问题标题】:django-template: read database response text as HTMLdjango-template:将数据库响应文本读取为 HTML
【发布时间】:2012-01-12 04:37:15
【问题描述】:
  • 我正在收集用户输入并使用 html 标签将它们存储在数据库中以保留格式。
  • 例如:来自数据库的响应可能是

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

  • 通常我只关心换行符
  • 在阅读来自 django-template 的回复时,我会这样做
 <div id="right_suggest_div" name={{ suggestion.key }}>   
   {{ suggestion.text }}  
   <p class="padding">Votes: {{ suggestion.votes }} </p>
 </div>

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

【问题讨论】:

  • “作为 HTML”是什么意思?我猜你希望它不转义,对吧?如果是这样,您可以使用 |safe 模板过滤器。
  • @jcollado,我用
    标签替换了 \n 以保存在应用引擎模型中并将文本返回到前端,但不知道如何将其呈现为 HTML。我做了

    {{ Recommendation.text }}

    但没用

标签: javascript python html django


【解决方案1】:

默认情况下,Django 会将 ">" 和 "

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

【讨论】:

    【解决方案2】:

    这就是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>
    

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

    【讨论】:

      猜你喜欢
      • 2011-10-09
      • 2021-05-27
      • 1970-01-01
      • 1970-01-01
      • 2019-03-03
      • 1970-01-01
      • 2017-07-07
      • 2011-03-17
      • 1970-01-01
      相关资源
      最近更新 更多