为什么 autoescape 不能在 Django 模板中替代安全?

时间:2021-05-23 08:46:59

标签: django django-templates

我是 Django 的初学者,正在研究模板,但对 autoescape 和 |safe 感到困惑。我认为 autoescape 可以替代 |safe,但事实并非如此。我不知道为什么。

以下是我的代码。有人可以帮我吗?非常感谢。

|safe 运行良好:

{% block title %}
    {{ name|safe }}
{% endblock %}

{% block body %}
    {{ description|safe }}
{% endblock %}

autoescape 不起作用:

{% autoescape on %}

{% block title %}
    {{ name }}
{% endblock %}

{% block body %}
    {{ description }}
{% endblock %}

{% endautoescape %}

1 个答案:

答案 0 :(得分:0)

{% block … %} … {% endblock %} [Django-doc] 之外的所有内容都不会被渲染,因此您需要将其写为:

{% block title %}
  {% autoescape on %}
    {{ name }}
  {% endautoescape %}
{% endblock %}

{% block body %}
  {% autoescape on %}
    {{ description }}
  {% endautoescape %}
{% endblock %}