当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Django format_html用法及代码示例


本文介绍 django.utils.html.format_html 的用法。

声明

format_html(format_string, *args, **kwargs)[source]

这类似于 str.format() ,除了它适用于构建 HTML 片段。所有 args 和 kwargs 在传递给 str.format() 之前都通过 conditional_escape() 传递。

对于构建小的 HTML 片段的情况,此函数优于直接使用 %str.format() 的字符串插值,因为它对所有参数应用转义 - 就像模板系统默认应用转义一样。

所以,而不是写:

mark_safe("%s <b>%s</b> %s" % (
    some_html,
    escape(some_text),
    escape(some_other_text),
))

您应该改用:

format_html("{} <b>{}</b> {}",
    mark_safe(some_html),
    some_text,
    some_other_text,
)

这样做的好处是您不需要将 escape() 应用于每个参数,并且如果您忘记了一个错误和 XSS 漏洞的风险。

请注意,虽然此函数使用 str.format() 进行插值,但 str.format() 提供的一些格式化选项(例如数字格式化)将不起作用,因为所有参数都通过 conditional_escape() 传递,该 conditional_escape() (最终)调用 force_str() 关于值。

相关用法


注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.utils.html.format_html。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。