Django 第四课 【标签】

## 常用的模板标签

快捷键:Tab --》 自动补齐  

            common + /  --》注销代码

            common + D  --》复制上一句代码到下面去

 

# if 语句标签

1:所有的标签都是在 ’{%%}‘之间。

2:if标签有闭合标签,就是 ’{%endif%}‘

3:if标签的判断运算符,就是跟python中的判断符是一样的,’ == , != ,  <  ,  > ,  <=  , in , not in , is , is not  ‘这些都可以使用

4:还可以使用 ’elif‘ 以及 ’else‘ 等标签。

 

# for...in...标签

1:可以遍历列表,元组,字符串,字典等一切可以遍历的对象,示例代码:

<table>
<thead>
<tr>
<td>序号</td>
<td>书名</td>
<td>作者</td>
<td>价格</td>
</tr>
</thead>
<tbody>
{% for book in books %}
{% if forloop.first %}
<tr style="background:red;">
{% elif forloop.last %}
<tr style="background:pink;">
{% else %}
<tr>
{% endif %}
<td>{{ forloop.counter }}</td>
<td>{{ book.name }}</td>
<td>{{ book.author }}</td>
<td>{{ book.price }}</td>
</tr>
{% endfor %}

</tbody>
</table>

如果想要反向遍历,那么在遍历的时候就加上一个 ’reversed‘。示例代码如下:

 {% for book in books reversed %}
           
            <p>{{ forloop.counter }}</p>
         
        {% endfor %}

 

在for循环中,‘DTL’提供了一些变量可供使用。这些变量如下:

* ‘forloop.cointer’:当前循环的下标。以1作为起始值。

* ‘forloop.cointer0’:当前循环的下标。以0作为起始值。

* ‘forloop.revcounter’:当前循环的反向下标值。比如列表有5个元素,那么遍历就从 5,4,3,2,1

* ‘forloop.revcounter0’:当前循环的反向下标值。比如列表有5个元素,那么遍历就从 4,3,2,1,0

* ‘forloop.first’:是否是第一次遍历。

* ‘forloop.last’:是否是最后一次遍历。

* ‘forloop.parentloop’:如果有多个循环嵌套,那么这个属性代表的是上一级的for循环。

 

** 模板中的 ‘for.. in...’ 没有continue和break语句,这一点和python中有很大的不同,一点要记清楚

 

## ‘for..in...empty..’标签:

这个标签使用跟 ‘for...in...’是一样的,只不过实在遍历的对象如果没有元素的情况下,会执行empty中的内容。示例代码如下:

 {% for book in books reversed %}
           
       <li>{{ forloop.counter }}</li>

 {% empty %}

       <li>{{ 暂时还没有任何数据 }}</li>
         
  {% endfor %}

 

 

## url标签

 url标签:在模板中,我们经常要写一些 ‘url’,比如某个 ‘a’ 标签中需要定义 ‘href’ 属性。当然如果通过硬编码的方式直接将这个 ‘url’ 写死在里面也是可以的。但是这样对于以后的项目维护可能不是一件好事。因为建议使用这种反转的方式来实现,类似于 ‘django’中的 ‘reverse’ 一样。示例代码如下:

<li><a href="{% url 'book' %}">读书</a></li>

 

如果 ‘url’ 反转的时候需要传递参数,那么可以在后面传递。但是参数分位置参数和关键字参数。位置参数和关键字参数不能同时使用。示例代码如下:

#path部分
 path('book/detail/<book_id>/<category>/', views.book_detail, name='detail')

#url反转,使用位置参数
 <li><a href="{% url 'book:city' 1 %}">同城页面</a></li>

#url反转,使用关键字参数
 <li><a href="{% url 'book:city' city_id=1 %}">同城页面</a></li>

 

如果想要在使用 ‘url’标签反转的时候要传递查询字符串的参数,那么必须要动手在后面添加。示例代码如下:

 <li><a href="{% url 'book:city' city_id=1 %}?page=1">同城页面</a></li>

 

如果需要传递多个参数,那么通过空格的方式进行分隔。示例代码如下:

<li><a href="{% url 'book:city' city_id=1 page=1 %}">同城页面</a></li>

 

## a标签

a标签的作用:就是用于控制界面与页面之间的跳转的

a标签的格式:<a href="指定要跳转的目标界面的链接">需要展示给用户看见的内容</a>

 
<a href="http://www.baidu.com">百度</a>

a标签中有一个target属性,这个属性的作用就是专门用于控制如何跳转

self:用于在当前选项卡中跳转,也就是不新建页面跳转

默认就是self

_blank :用于在新的选项卡中跳转,也就是新建页面跳转

 
<a href="http://www.baidu.com" target="self">百度</a>
<a href="http://www.baidu.com" target="_blank">百度</a>

a标签中还有一个属性,叫做tiele,a标签中的title和img标签中title一样,都是用来控制鼠标悬停时显示的提示文本内容的

 
<a href="http://www.baidu.com" target="_blank" title="点击会跳转到百度首页喔">百度</a>

 

注意点:

1.a标签不仅可以让文字可以点击,还可以让图片也能够被点击。

2.一个a标签必须有一个href属性,否则a标签不知道要跳转到什么地方

3.如果通过a标签的href属性指定一个URL地址,那么必须在地址前面加上http://或https://。 

4.a标签的href属性除了可以绑定一个网络地址以外,还可以指定一个本地的地址

 

 

## 列表标签

1.列表标签的作用:给一堆数据添加列表语义,也就是告诉搜素引擎告诉浏览器这一堆数据是一个整体。

2.HTML中列表标签的分类

  2.1无序列表(最多人用)(unordered list)

  2.2有序列表(最少人用)(ordered list)

  2.3定义列表(其次)(definition list)

3无序列表作用:

给一堆数据添加列表语义,并且这一堆数据所有的数据都没有先后之分

什么叫先后之分?

例如:排行榜

什么叫没有先后之分?

例如:中国的所有城市

 

4.无序列表格式:

 
<ul>
    <li>需要显示的条目内容</li>
</ul>

li其实是英文list item的缩写

list是列表的意思

item是条目的意思

所以结合起来就是列表条目的意思

例子:

复制代码
<h2>中国的城市:</h2>
<ul>
    <li>北京</li>
    <li>上海</li>
    <li>广州</li>
    <li>武汉</li>
</ul>
复制代码

 

5.注意点

  5.1一定要记住ul标签是用来给一堆数据添加列表语义的,而不是用来给他们添加小圆点的

  5.2ul标签和li标签是一个整体,是一个组合,所有一般情况下ul标签和li标签都是一起出现,不会单个出现,也就是说不会单独使用一个ul标签或者单独使用一个li标签,都是结合在一起使用的

  5.3由于ul标签和li标签是一个组合,所有ul标签中不推荐包含其他标签,也就是说以后你在ul标签中只会看到li标签

 

## img标签

  1.img标签中的img其实就是英文image的缩写

    img标签的作用就是告诉浏览器我们需要显示一张图片。

  2.img标签格式:<img src="">

    其实img标签中的src是英文source的缩写

    所以img标签中的src就是用来img标签,需要显示的图片名称

 

 
<img src="当前电脑图片的路径" />

 

  3.注意点

    -和h系列标签/p标签还有hr标签不一样,img标签不会独占一行

    -如果我们手动指定了img标签显示的图片的宽度和高度,

    有可能会导致图片变形,那么如果又想指定宽度和高度,

 
<img src="当前电脑图片的路径" width="200px" height="200px" />

    又不想让图片发生变形,我们可以只指定宽度或者高度其中的一个值即可

    -只要指定了宽度,系统会自动根据宽度计算出高度,

    只要指定了高度,系统会自动根据高度计算出宽度,

       并且都是等比拉伸的,也就是说不会变形

 
<img src="当前电脑图片的路径" width="200px" />
<img src="当前电脑图片的路径" height="200px" />

  4.width:宽度

  height:高度

  所以在img标签中width/height这两个属性的作用,

    就是用来告诉img标签将来需要显示的图片有多宽有多高

  如果img标签没有指定需要显示的图片的宽高,

    那么系统就会按照图片默认的宽高来显示

  如果img标签指定了宽高,那么系统会按照指定的宽高在显示

  5.title:用于告诉浏览器,当鼠标悬停在图片上时

  需要弹出的描述框中显示什么内容。

  6.alt:其实是英文alternate的缩写,它的作用就是用于告诉浏览器

  当需要显示的图片找不到时显示什么内容

 

posted @ 2018-08-09 16:53  Nelsen_Chen  阅读(276)  评论(0编辑  收藏  举报