关于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

  1. {% if book_list.0 == 'Java' %}
  2. 第一本书是Java
  3. {% elif book_list.0 == 'Python' %}
  4. 第一本书是Python
  5. {% else %}
  6. 第一本书是C
  7. {% endif %}

结果为:第一本书是Python

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

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

Hello World/temlplates/index.html

  1. {% if book_list or person %}
  2. 存在book_list 或者 person
  3. {% endif %}
  4.  
  5. {% if book_list and person %}
  6. book_list person都存在
  7. {% endif %}
  8.  
  9. {% if book_list and not person %}
  10. 存在book_list 不存在person
  11. {% endif %}

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

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

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

  1. {% if book_list.0 == 'Python' %}
  2. 1.第一本书是Python
  3. {% endif %}
  4.  
  5. {% if book_list.0 != 'Python' %}
  6. 2.第一本书不是Python
  7. {% endif %}
  8.  
  9. {% if person.age <= 20 %}
  10. 3.这个人的年龄没超过20
  11. {% else %}
  12. 4.这个人的年龄超过20
  13. {% endif %}
  14.  
  15. {% if 'Python' in book_list %}
  16. 5.Pythonbook_list列表里
  17. {% endif %}
  18.  
  19. {% if 'Py' not in book_list %}
  20. 6.Pybook_list列表里
  21. {% endif %}
  22.  
  23. {% if book_list.4 is not True %}
  24. 7.book_list.4不存在
  25. {% endif %}
  26.  
  27. {% if book_list is not None%}
  28. 8.book_list列表存在
  29. {% endif %}

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

2.For标签

(1)列表for循环

  1. {% for book in book_list %}
  2. {{book}}
  3. {% endfor %}

结果:Python Java C

(2)字典for循环

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

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

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

  1. {% for book in book_list2 %}
  2. {{book}}
  3. {% empty %}
  4. 没有这个列表或者该列表为空
  5. {% 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 循环嵌套中对上一层循环的操作

  1. {% for k in person %}
  2. {%if forloop.first %}
  3. 这是第一次循环
  4. {% elif forloop.last%}
  5. 这是最后一次循环
  6. {% else %}
  7. {{k}}
  8. {% endif %}
  9. {% endfor %}

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

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

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

Django 学习笔记(五)模板标签的更多相关文章

  1. Django学习笔记之模板

    模板 模板介绍 在之前的章节中,视图函数只是直接返回文本,而在实际生产环境中其实很少这样用,因为实际的页面大多是带有样式的HTML代码,这可以让浏览器渲染出非常漂亮的页面. 目前市面上有非常多的模板系 ...

  2. Django学习笔记之模板渲染、模板语言、simple_tag、母版子版、静态配置文件

    一.首先我们用PyCharm来创建一个Django项目 终端命令:django-admin startproject sitename 图形创建:   这样一个Django项目就创建完成了,上面可以看 ...

  3. Django学习笔记之URL标签的使用

    期初用django 开发应用的时候,完全是在urls.py 中硬编码配置地址,在views.py中HttpResponseRedirect()也是硬编码转向地址,当然在template 中也是一样了, ...

  4. Shiro学习笔记五(Shiro标签,及通配符)

    1.首先是导入标签库 <%@taglib prefix="shiro" uri="http://shiro.apache.org/tags" %> ...

  5. Django学习笔记(五)—— 表单

    疯狂的暑假学习之  Django学习笔记(五)-- 表单 參考:<The Django Book> 第7章 1. HttpRequest对象的信息 request.path         ...

  6. Django 学习笔记(四)模板变量

    关于Django模板变量官方网址:https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.传入普通变量 在hello/Hell ...

  7. Django 学习笔记(三)模板导入

    本章内容是将一个html网页放进模板中,并运行服务器将其展现出来. 平台:windows平台下Liunx子系统 目前的目录: hello ├── manage.py ├── hello │ ├── _ ...

  8. Django 学习笔记(六)MySQL配置

    环境:Ubuntu16.4 工具:Python3.5 一.安装MySQL数据库 终端命令: sudo apt-get install mysql-server sudo apt-get install ...

  9. Django学习笔记(9)—— 开发用户注册与登录系统

    一,项目题目: 开发用户注册与登录系统 该项目主要练习使用Django开发一个用户注册与登录的系统,通过这个项目然后巩固自己这段时间所学习的Django知识. 二,项目需求: 开发一个简单的用户登录与 ...

随机推荐

  1. 【DG】Oracle_Data_Guard官方直译

    [DG]Oracle Data Guard官方直译 1 Oracle Data Guard 介绍   Oracle Data Guard概念和管理10g版本2   Oracle Data Guard ...

  2. 基于 WebRTC 技术的实时通信服务开发实践

    随着直播的发展,直播实时互动性变得日益重要.又拍云在 WebRTC 的基础上,凭借多年的开发经验,结合当下实际情况,开发 UPRTC 系统,解决了网络延时.并发量大.客户端解码能力差等问题. WebR ...

  3. HDOJ2002-计算球体面积

    Problem Description 根据输入的半径值,计算球的体积.   Input 输入数据有多组,每组占一行,每行包括一个实数,表示球的半径.   Output 输出对应的球的体积,对于每组输 ...

  4. Mac下安装 MongoDB

    Mac 下安装 MongoDB 一般有两种方法,一种是通过源码安装,一种是直接使用 homebrew ,个人推荐使用 homebrew ,简单粗暴. 1.安装 homebrew : /usr/bin/ ...

  5. [BZOJ1500][NOI2005]维修数列---解题报告

    Portal Gun:[BZOJ1500][NOI2005]维修数列 有一段时间没写博客了,最近在刚数据结构......各种板子背得简直要起飞,题目也是一大堆做不完,这里就挑一道平衡树的题来写写好了 ...

  6. WCF Cookie处理

    wcf操作cookie看似很简单,如果不对Wcf研究一把还是很难的,基本上无从下手. 这里上一图 上面的结果,岂止是坑爹,简直就是坑爹!!! 废话不多说,直接上代码: cookie读取 var req ...

  7. C#设计模式(0)-认识设计模式

    简介 世界上本没有路,走的人多了也就成了路:世界上本来没有设计模式.用的人多了,也就成了设计模式.所以,我们不是严格按照它的定义去执行,可以根据自己的实际场景.需求去变通.领悟了其中的思想,实现属于自 ...

  8. keilc 4 编译出现的几个错误…

    原文地址:keilc 4 编译出现的几个错误解决作者:黑子     今天安装了keilc4,因为项目用到,所以把遇到的几个编译错误解决方法说说,第一次写东西不知道写啥!!    一  第一个是错误提示 ...

  9. Spring源码解析——如何阅读源码

    最近没什么实质性的工作,正好有点时间,就想学学别人的代码.也看过一点源码,算是有了点阅读的经验,于是下定决心看下spring这种大型的项目的源码,学学它的设计思想. 手码不易,转载请注明:xingoo ...

  10. java垃圾回收过程

    对于年轻代,刚开始创建的对象都是放置在eden区的,而将年轻代分成3个部分,主要是为了生命周期短的对象尽量留在年轻代.当eden区申请不到空间的时候,进行minorGC,把存活的对象拷贝到survio ...