{% 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的官方文档