for标签使用详解:

for...in... 标签: for...in... 类似于 Python 中的 for...in... 。可以遍历列表、元组、字符串、字典等一切可以遍历的对象。示例代码如下:

{% for person in persons %}
<p>{{ person.name }}</p>
{% endfor %}

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

{% for person in persons reversed %}
<p>{{ person.name }}</p>
{% endfor %}

遍历字典的时候,需要使用 items 、 keys 和 values 等方法。在 DTL 中,执行一个方法不能使用圆括号的形式。遍历字典示例代码如下:

{% for key,value in person.items %}
<p>key:{{ key }}</p>
<p>value:{{ value }}</p>
{% endfor %}

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

  • forloop.counter :当前循环的下标。以1作为起始值。
  • forloop.counter0 :当前循环的下标。以0作为起始值。
  • forloop.revcounter :当前循环的反向下标值。比如列表有5个元素,那么第一次遍历这个属性是等于5,第二次是4,以此类推。并且是以1作为最后一个元素的下标。
  • forloop.revcounter0 :类似于forloop.revcounter。不同的是最后一个元素的下标是从0开始。
  • forloop.first :是否是第一次遍历。
  • forloop.last :是否是最后一次遍历。
  • forloop.parentloop :如果有多个循环嵌套,那么这个属性代表的是上一级的for循环。

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

{% for person in persons %}
<li>{{ person }}</li>
{% empty %}
<li>暂时还没有任何人</li>
{% endfor %}

实例代码如下:

views.py:

from django.shortcuts import render

# Create your views here.
# my_dict = {"name": 'tom'}
# my_list = ["jerry",]
# my_tupe = ("alice",)
my_dict = {'books':[
{"name":'红楼梦','author':'曹雪芹',"price":150},
{"name":'水浒传','author':'罗贯中',"price":140},
{"name":'三国演义','author':'施耐庵',"price":160},
{"name":'西游记','author':'吴承恩',"price":130},
],
# "comment": ['内容不错', "真的假的啊"],
"comment": [],
} def index(request):
return render(request, 'index.html', context=my_dict)
# return render(request, 'index.html', context={'age': 20})
# return render(request, 'index.html', context={'username': "jack_cheng",
# 'list1':my_dict,
# 'list2':my_list,
# 'list3':my_tupe})

url.py:

from django.contrib import admin
from django.urls import path
from front import views
urlpatterns = [
path('admin/', admin.site.urls),
path('front/', views.index),
]

index.html:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{#<p>字符串:{{ username }}</p>#}
{#<p>字典:{{ list1.name }}</p>#}
{#<p>列表:{{ list2.0 }}</p>#}
{#<p>元组:{{ list3.0 }}</p>#}
{#{% if age < 18 %}#}
{# <p>您是未成年人</p>#}
{#{% elif age >= 18 and age < 80 %}#}
{# <p>您是成年人</p>#}
{#{% else %}#}
{# <p>您是老年人</p>#}
{#{% endif %}#}
<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> {% for item in comment %}
<li>{{ item }}</li>
{% empty %}
<li>抱歉内容为空</li>
{% endfor %} </body>
</html>

027:for标签使用详解的更多相关文章

  1. Drawable实战解析:Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)

    Android XML shape 标签使用详解   一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...

  2. HTML标签----图文详解(二)

    HTML标签超详细的图文演示再来一波~~~ 如果还没有看过昨天的福利的,那可要抓紧喽,传送门:HTML标签----图文详解 本文主要内容 列表标签 表格标签 框架标签及内嵌框架<iframe&g ...

  3. HTML标签----图文详解

    国庆节快乐,还在加班的童鞋,良辰必有重谢! 本文主要内容 头标签 排版标签:<p>     <br>     <hr>     <center>     ...

  4. Struts标签库详解【3】

    struts2标签库详解 要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部加入以下的代码: <%@taglib prefix="s" uri= ...

  5. Android XML shape 标签使用详解(apk瘦身,减少内存好帮手)

    Android XML shape 标签使用详解   一个android开发者肯定懂得使用 xml 定义一个 Drawable,比如定义一个 rect 或者 circle 作为一个 View 的背景. ...

  6. 【jsp】JSTL标签大全详解

    一.JSTL标签介绍 1.什么是JSTL? JSTL是apache对EL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言!JSTL标签使用以来非常方便,它与JSP动作标签一样,只不过它不是 ...

  7. POM标签大全详解

    父(Super) POM <project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns:xsi = "htt ...

  8. 029:url标签使用详解

    url标签使用详解: 在模版中,我们经常要写一些 url ,比如某个 a 标签中需要定义 href 属性.当然如果通过硬编码的方式直接将这个 url 写死在里面也是可以的.但是这样对于以后项目维护可能 ...

  9. 028:with标签使用详解

    with标签使用详解: 1.在模板中享用使用变量,可以通过  with  语句实现: 2.with  有两种用法,具体情况如下 ( 包括注意事项 ) : index.html: <p>wi ...

随机推荐

  1. TreeSet 源码分析

    TreeSet 1)底层由 TreeMap 支持的 Set 接口实现,Set 中的元素按照自然顺序或指定的比较器排序. 创建实例 /** * 支持此 Set 的底层的 TreeMap 对象 */ pr ...

  2. 如何在idea中查看jar包源码

    文章目录 准备jar包 idea打开文件夹 最后一步 准备jar包 例如,我准备看resin的jar,在桌面准备了一份 idea打开文件夹 在idea中file====>open=====> ...

  3. MIUI8改MAC

    1.手机Root 2.RE文件管理器复制:/data/nvram/APCFG/APRDEB/WIFI 到电脑上 3.如下图用UltraEdit打开WIFI文件修改MAC 4.拷贝修改后的WIFI文件到 ...

  4. 【ABAP系列】SAP MB5B中FI凭证摘要是激活的/结果可能不正确 的错误

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP MB5B中FI凭证摘要是 ...

  5. Hand on Machine Learning 第二章:端到端的机器学习

    1.import 模块 import os import tarfile from six.moves import urllib import pandas as pd pd.set_option( ...

  6. StringBuffer 和Stringbuilder源码分析

    首先看一下他们的继承关系   这个两个对象都继承了AbstractStringBuilder抽象类.   1.他们的实现方式都一样的,唯一区别的StringBuffer在多线程的时候是保证了数据安全, ...

  7. ElasticSearch 基础 1

    ElasticSearch 基础=============================== 索引创建 ========================== 1. RESTFUL APIAPI 基本 ...

  8. “希希敬敬对”队软件工程第九次作业-beta冲刺第二次随笔

    队名:  “希希敬敬对” 龙江腾(队长) 201810775001 杨希                   201810812008 何敬上 201810812004 今日讨论会议照片一张: 每个人 ...

  9. 手把手教你用Pytorch-Transformers——实战(二)

    本文是<手把手教你用Pytorch-Transformers>的第二篇,主要讲实战 手把手教你用Pytorch-Transformers——部分源码解读及相关说明(一) 使用 PyTorc ...

  10. ### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.

    在做多表映射查询时,在同一个resultMap中写了1:1映射和1:n映射,结果测试时报错如下: org.apache.ibatis.exceptions.PersistenceException: ...