如何在Jinja2的视图(或模板)中将字符串标记为"安全"?

sot*_*ips 16 django django-templates jinja2

通常,当您想在Jinja2中将字符串输出标记为安全时,您可以执行以下操作:

{{ output_string|safe() }}
Run Code Online (Sandbox Code Playgroud)

但是,如果output_string 总是安全的呢?我不想每次都使用安全过滤器重复自己.

我有一个名为"emailize"的自定义过滤器,它会在电子邮件中为输出添加网址.&符似乎总是逃脱.我的自定义过滤器中有一种方法可以将输出标记为安全吗?

Wer*_*ght 13

检查SafeString,例如:

from django.utils.safestring import SafeString
...
return context.update({
        'html_string': SafeString(html_string),
})
Run Code Online (Sandbox Code Playgroud)


ars*_*ars 11

使用Markup类:

class jinja2.Markup([string])

将字符串标记为可安全包含在HTML/XML输出中而无需转义.