Answers:
如果您想对文本进行更复杂的处理,则可以创建自己的过滤器,并在返回html之前做一些魔术。带有一个templatag文件,如下所示:
from django import template
from django.utils.safestring import mark_safe
register = template.Library()
@register.filter
def do_something(title, content):
something = '<h1>%s</h1><p>%s</p>' % (title, content)
return mark_safe(something)
然后,您可以将其添加到模板文件中
<body>
...
{{ title|do_something:content }}
...
</body>
这会给您带来不错的结果。
您可以在代码中呈现模板,如下所示:
from django.template import Context, Template
t = Template('This is your <span>{{ message }}</span>.')
c = Context({'message': 'Your message'})
html = t.render(c)
有关更多信息,请参见Django文档。
使用autoescape
关闭HTML转义:
{% autoescape off %}{{ message }}{% endautoescape %}
无需在模板中使用过滤器或标签。只需使用format_html()将变量转换为html,Django就会自动为您关闭转义变量。
format_html("<h1>Hello</h1>")
在这里查看https://docs.djangoproject.com/en/3.0/ref/utils/#django.utils.html.format_html
€
)之类的货币符号,则从视图中传递的美元就是这种方法。