如何在Django模板中显示变量为HTML?

1 投票
3 回答
2797 浏览
提问于 2025-04-17 21:18

假设我有一个函数

def func(request):
    a="Hello, <br> this is my first app"
    return render_to_response(
                            'home.html',
                            {'a':a, 'request':request},
                            context_instance=RequestContext(request)
                          )

当我在 home.html 中加载变量 a 时,像这样:

{{a}}

我会得到 "Hello, <br> 这是我的第一个应用", 那么在 Django 模板中,如何把 <br> 显示成新的一行呢...??

3 个回答

0

在模板文件中,使用 {{a|safe}},而不是 {{a}}。

1

一个更简单的方法是直接在模板里使用

{{a|safe}}

3

试试这个:

from django.utils.safestring import mark_safe


a = mark_safe("Hello, <br> this is my first app")

Django会自动把你变量里的HTML内容进行转义,也就是说它会把一些特殊字符变成安全的形式。所以你需要把这些内容标记为安全字符串。

记住,比如说,安全字符串加上不安全字符串,结果还是不安全字符串。你可以在这里了解更多信息。

撰写回答