您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

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

Django有一个称为 安全 字符串(特别是SafeUnicodeSafeString)的字符串子类,可以使用来创建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.filter
def myfilter(value):
    return value
myfilter.is_safe = True

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

Go 2022/1/1 18:48:08 有290人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶