【问题标题】:How to render string literal with html tags in django?如何在 django 中使用 html 标签呈现字符串文字?
【发布时间】:2022-01-25 17:02:31
【问题描述】:

我已经编写了一个自定义视图来使用正则表达式和 我将内容作为字符串文字传递给模板

context = "Django is a web framework written using <a href='https://www.python.org/'>Python</a>"

return render(request, "blog/post.html", {"context": context})

在模板中:

<p>{{ context }}</p>

但引擎将内容呈现为纯文本。如何让链接成为链接,让段落成为段落?

【问题讨论】:

  • 您需要将其标记为安全,因为您信任其中的标记; {{ context|safe }}。或者,您可以在视图中使用 mark_safe() 在上下文中传递安全字符串; docs.djangoproject.com/en/3.2/ref/utils/…
  • 它有效。谢谢。但是我还有其他几个没有安全过滤器的变量。为什么这些变量在没有被标记为安全的情况下仍然有效?
  • 我假设其他变量不包含 django 认为有潜在危险的任何内容。

标签: django django-templates


【解决方案1】:

只需添加safe模板标签,就像@markwalker_在cmets中所说的那样,它将关闭html标签的自动转义。

 <p>{{ context|safe }}</p>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-07
    • 2013-07-23
    • 1970-01-01
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    • 2017-12-28
    • 2015-09-02
    相关资源
    最近更新 更多