如何防止Django模板中的自动转义?

如何防止Django模板中的自动转义?,第1张

如何防止Django模板中的自动转义

Django有一个称为 安全
字符串(特别是

SafeUnipre
SafeString
)的字符串子类,可以使用来创建
django.utils.safestring.mark_safe
。当模板引擎遇到安全字符串时,它不会对其执行HTML转义:

>>> from django.utils.safestring import mark_safe>>> from django.template import Template, Context>>> Template("{{ name }}").render(Context({'name': mark_safe('<b>Brad</b>')}))u"<b>Brad</b>"

如果您正在编写自己的模板标签,则需要实现

render()
该方法,该方法将返回将被视为安全的字符串,这意味着您必须自己处理所有必要的转义 *** 作。但是,如果要编写模板过滤器,则可以
is_safe= True
在过滤器上设置属性,以避免自动转义返回的值,例如

@register.filterdef myfilter(value):    return valuemyfilter.is_safe = True

有关详细信息,请参见https://docs.djangoproject.com/zh-CN/1.3/howto/custom-template-
tags/#filters-and-auto-
escaping



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5649157.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存