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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值