DTL语言学习(四){% spaceless %}、{% autospace %}和{% verbatim %}标签

xiaoxiao2025-09-03  226

{% spaceless %}标签

移除html标签中的空白字符,包括空格,换行键,tab键等。 首先创建一个测试环境,相信看到看到这里的都知道怎样创建一个测试环境了。这里就不细说了。 我们在html中写入一下代码:

<div> <p> <a>hahahahahhahah</a> </p> </div> {% spaceless %} <div> <p> <a>hahahahahhahah</a> </p> </div> {% endspaceless %}

然后我们查看效果 在按f12查看源码 我们发现网页上效果一样,但是添加了{% spaceless %}源码中没有了空格,换行这些空白字符了。这就是{% spaceless %}标签的作用。 在我们写html代码的时候就需要像没有添加{% spaceless %}那样写代码,方便我们查看,而当我们放在网页上去时,就可以用{% spaceless %}标签包裹住。这标签用的很少,看个人心情来使用吧。

{% autospace %}标签

我们在views中写入一个index的函数

from django.shortcuts import render # Create your views here. def index(request): link = "<a href='https://www.baidu.com/'>百度</a>" return render(request,'auto.html',{'link':link})

然后在html中写入代码:

{{ link }} <a href="https://www.baidu.com/">百度</a>

查看效果 我们从views中返回的<a>标签和html中写的<a>标签一样,为什么html没有解析出views中返回的<a>标签呢? 这是因为Django中给我焖自动开启了自动转义功能,防止别人用一些脚本上传一些能破坏你代码结构的标签。从而使你的网页上多了一些你不想要的东西。 如果我们确定一些上传的代码是安全的,并且希望html帮我们解析出来,我们就需要关掉自动转义功能。 即需要用到{% autospace %}标签了 修改html中代码:

{% autoescape off %} {{ link }} <br> {% endautoescape %} <a href="https://www.baidu.com/">百度</a>

这样我们就关掉了Django默认的转义,使html能解析我们传如的代码。

注意: 如果你不知道自己在干什么,最好不要关掉Django的自动转义,这样网站才不会出现XSS漏洞。

{% verbatim %}标签

在写项目的时候,有时候我们不想要DTL解析类似{{ value }}这样的变量,而是交给其他引擎来解析。 这个时候我们就需要用到{% verbatim %}标签了。 html中添加代码:

{% verbatim %} {{ value }} {% endverbatim %} {{ value }}

我们查看网页效果 我们只看到一个{{ value }},这是因为没有使用{% verbatim %}标签中的 {{ value }}被DTL语言解析了,而我们又没有传递{{ value }}的值,所以是空白字符,而{% verbatim %}标签中的{{ value }}就不会被DTL语言解析,可以被其他引擎解析。

想了解更多的DTL标签使用使用详情,可以查看Django的官方文档

转载请注明原文地址: https://www.6miu.com/read-5035682.html

最新回复(0)