📅  最后修改于: 2023-12-03 14:48:43.954000             🧑  作者: Mango
|safe
Django - Python如果你是 Django 的入门者,你可能已经了解了 Django 的模板语言,和需要使用 |safe
这个过滤器以将 HTML 原样输出。在这篇文章中,我将会介绍更多关于 |safe
的内容,并解释什么时候以及如何使用它。
|safe
?|safe
是一个 Django 模板语言中的过滤器。当它应用在一个变量上时,它告诉 Django 原封不动地输出变量,并且不对其进行转义。这意味着,如果你的变量中包含有 HTML 或者其他安全的 Markups,它们将会被保留下来,并且以 HTML 原样输出。
|safe
?当你的变量中包含有 HTML 标签或者其他安全的 Markups 时,你需要使用 |safe
这个过滤器。如果你不使用 |safe
过滤器,Django 将会尝试转义你的 HTML 标签,这将会让你的 HTML 无效,因为 HTML 实体的 Ampersand(&)和小于号(<)等字符被转换为它们的 ASCII 码。
|safe
?在 Django 模板语言中使用 |safe
很简单,只需要在需要原样输出的变量之后使用 |safe
这个过滤器即可。以下是一个简单示例:
{% verbatim %}
{% with html_str="<strong>Hello, world!</strong>" %}
{{ html_str|safe }}
{% endwith %}
{% endverbatim %}
在这个示例中,我们首先定义一个名为 html_str
的变量,并使用 <strong>
标签包裹了它。之后,我们将该变量作为模板变量传递给模板引擎。在模板引擎中,我们将 html_str
变量和 |safe
过滤器一起使用,以输出被包裹在 <strong>
标签中的字符串。由于我们使用了 |safe
过滤器,模板引擎将会原封不动地输出字符串,并以 HTML 标签的形式呈现。
|safe
这个过滤器是一个简单但重要的 Django 模板语言的功能。它允许我们在 Django 模板语言的变量中包含有 HTML 或者其他安全的 Markups,并保持它们的完整性。在使用 |safe
过滤器时需要格外小心,因为一旦输入数据未经过滤就被使用,这可能会导致安全漏洞。