📜  |safe django - Python (1)

📅  最后修改于: 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 过滤器时需要格外小心,因为一旦输入数据未经过滤就被使用,这可能会导致安全漏洞。