zoukankan      html  css  js  c++  java
  • 模板标签之if、for

    if标签

    if标签相当于Python中的if语句,有elif和else相对应,但是所有的标签
    都需要用标签符号({%%})进行包裹。if标签中可以使用 ==、!=、<、<=、>、>=、in、notin、is、is not等判断运算符。

    {% if "张三" in persons %}
    	<p>张三</p>
    {% else %}
    	<p>李四</p>
    {% endif %}
    

    for...in... 标签

    for...in...类似于Python中的 for...in... 可以遍历列表、元组、字符串、字典等一切可以遍历的对象。

    • views.py示例

        def jiajia(request):
        	context = {
        		'books': [
            		'三国演义',
            		'水浒传',
            		'红楼梦',
            		'西游记',
        		]
        	}
        return render(request, 'index.html', context=context)
      
    • urls示例

        from django.urls import path
        from . import views
        urlpatterns = [
        	path('index2/', views.jiajia),
        ]
      
    • html示例

        <ul>
        	{% for book in books %}
        		<p>{{ book }}</p>
        	{% endfor %}
        </ul>
      
    • 效果:

    如果想要反向遍历,那么在遍历的时候就加上一个 reversed

    • 反向遍历示例代码

        <ul>
         	{% for book in books reversed %}
         		<li>{{book}}</li>
         	{% endfor %}
        </ul>
      

    遍历字典的形式:

    • views示例代码:

        context = {
        	'person': {
            	'uername': 'jiajia',
            	'age': 18,
            	'height': 180
        	}
        }
      
    • html示例代码

        <ul>
         	{% for key in person.keys %}
            	        <li>{{ key }}</li>
         	{% endfor %}
        </ul>
      

    这样就是把person内的所有key打印出来,同理修改person.values即可得到所有的values。items亦是如此。

    • items示例代码

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

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

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

    for...in...empty标签:

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

    • 示例代码:

        {% for comment in comments %}
        	<li>{{ comment }}</li>
        {% empty %}
        	没有任何评论
        {% endfor %}
  • 相关阅读:
    kafka那些事儿
    netty
    kafka为什么吞吐量高,怎样保证高可用
    通用mybatis单表操作接口
    P1058立体图
    P2258 子矩阵
    P1439 【模板】最长公共子序列(LCS)
    洛谷P2672 推销员
    P3373线段树2
    P5018 对称二叉树
  • 原文地址:https://www.cnblogs.com/jiajiaba/p/10557770.html
Copyright © 2011-2022 走看看