• Django 学习笔记(五)模板标签


    关于Django模板标签官方网址https://docs.djangoproject.com/en/1.11/ref/templates/builtins/

    1.IF标签

    Hello World/views.py

     1 from django.shortcuts import render
     2 
     3 class Person(object):
     4     def __init__(self,name,age,sex):
     5         self.name=name
     6         self.age=age
     7         self.sex=sex
     8 
     9     def say(self):
    10         return "I'm %s." %self.name
    11         
    12 def index(request):
    13     #传入普通变量
    14     #传入数据为 html 中的变量:views中的变量
    15     #return render(request,'index.html',{'title':'Welcome','name':'KeinLee'})
    16 
    17     #传入字典变量
    18     person = {'name':'Lee','age':20,'sex':'male'}
    19     #传入列表变量
    20     book_list =['Python','Java','C']
    21     #book_list =[]
    22     #传入对象变量
    23     #person=Person('Lucky',18,'female')
    24     return render(request,'index.html',{'title':'Welcome','person':person,'book_list':book_list})
    views.py

    (1)if ...elif...else...endif

    Hello World/temlplates/index.html

    {% if book_list.0 == 'Java' %}
     第一本书是Java
    {% elif book_list.0 == 'Python' %}
    第一本书是Python
    {% else %}
    第一本书是C
    {% endif %}
    View Code

    结果为:第一本书是Python

    (2)if...and...or...not...endif

    注意:and和or可以同用,但是and的优先级比or高

    Hello World/temlplates/index.html

    {% if book_list or person %}
    存在book_list 或者 person
    {% endif %}
    
    {% if book_list and person %}
    book_list 和 person都存在
    {% endif %}
    
    {% if book_list and not person %}
    存在book_list 不存在person
    {% endif %}
    View Code

    结果为:存在book_list 或者 person、book_list 和 person都存在、(空)

    (3)if符号运算(==、!=、>、>=、<=、<、in、not in、is、is not)

    if is XX True这个是当且仅当XX为真,这个暂时理解不了

    {% if book_list.0 == 'Python' %}
    1.第一本书是Python
    {% endif %}
    
    {% if book_list.0 != 'Python' %}
    2.第一本书不是Python
    {% endif %}
    
    {% if person.age <= 20  %}
    3.这个人的年龄没超过20
    {% else %}
    4.这个人的年龄超过20
    {% endif %}
    
    {% if  'Python' in book_list %}
    5.Python在book_list列表里
    {% endif %}
    
    {% if  'Py' not in book_list %}
    6.Py在book_list列表里
    {% endif %}
    
    {% if  book_list.4 is not True %}
    7.book_list.4不存在
    {% endif %}
    
    {% if  book_list is not None%}
    8.book_list列表存在
    {% endif %}
    View Code

    结果:1、 3、 5、 6、7、8能够显示

    2.For标签

    (1)列表for循环

    {% for book in book_list %}
    {{book}}
    {% endfor %}

    结果:Python Java C 

    (2)字典for循环

    {% for k,v in person.items %}
    {{k}}:{{v}}
    {% endfor %}

    结果:sex:male name:Lee age:20

    (3)for...empty  (在views.py中没有定义book_list2)

    {% for book in book_list2 %}
    {{book}}
    {% empty %}
    没有这个列表或者该列表为空
    {% endfor %}

    结果:没有这个列表或者该列表为空

    (4)forloop

    forloop.counter 循环记数,默认1开始

    forloop.counter0 循环记数,从0开始

    forloop.revcounter 循环到记数,默认1结束

    forloop.revcounter0 循环记数,到0结束

    forloop.first 第一次循环bool值为True,一般与if连用

    forloop.last 最后一次循环bool值为True,一般与if连用

    forloop.parentloop 循环嵌套中对上一层循环的操作

    {% for k in person %}
    {%if forloop.first %}
     这是第一次循环
    {% elif forloop.last%}
    这是最后一次循环
    {% else %}
    {{k}}
    {% endif %}
    {% endfor %}
    

    结果:这是第一次循环 name 这是最后一次循环 

    系列上一章:Django 学习笔记(四)模板变量

    系列下一章:Django 学习笔记(六)MySQL配置

  • 相关阅读:
    并发容器梳理
    CAS总结
    原子类总结and-Git提交出现error: src refspec master does not match any的问题
    简单工厂模式小结
    JVM学习与问题总结——java内存区域与内存溢出异常
    反射机制学习记录
    观察者模式
    IDEA的一些常用设置
    建造者模式
    【[AH2017/HNOI2017]礼物】
  • 原文地址:https://www.cnblogs.com/keinlee/p/7421835.html
Copyright © 2020-2023  润新知