移除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 %}标签包裹住。这标签用的很少,看个人心情来使用吧。
我们在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漏洞。
在写项目的时候,有时候我们不想要DTL解析类似{{ value }}这样的变量,而是交给其他引擎来解析。 这个时候我们就需要用到{% verbatim %}标签了。 html中添加代码:
{% verbatim %} {{ value }} {% endverbatim %} {{ value }}我们查看网页效果 我们只看到一个{{ value }},这是因为没有使用{% verbatim %}标签中的 {{ value }}被DTL语言解析了,而我们又没有传递{{ value }}的值,所以是空白字符,而{% verbatim %}标签中的{{ value }}就不会被DTL语言解析,可以被其他引擎解析。
想了解更多的DTL标签使用使用详情,可以查看Django的官方文档