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

1.IF标签

Hello World/views.py

 from django.shortcuts import render

 class Person(object):
def __init__(self,name,age,sex):
self.name=name
self.age=age
self.sex=sex def say(self):
return "I'm %s." %self.name def index(request):
#传入普通变量
#传入数据为 html 中的变量:views中的变量
#return render(request,'index.html',{'title':'Welcome','name':'KeinLee'}) #传入字典变量
person = {'name':'Lee','age':20,'sex':'male'}
#传入列表变量
book_list =['Python','Java','C']
#book_list =[]
#传入对象变量
#person=Person('Lucky',18,'female')
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 %}

结果为:第一本书是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 %}

结果为:存在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 %}

结果: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配置

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. 我JAVA修炼之路

    今天起,我会不定期更新我的java修炼之路, 2017.7.10,星期一 我参见了河南青云的培训班,这一天是我们的开班典礼. 我会不定期的总结我的学习笔记,大家喜欢的可以看看,不喜勿喷. 写代码: 1 ...

  2. simpleImageTool又纯java图片水印、缩放工具

    simpleImageTool又一个简单.好用的图片格式转换.缩放水印叠加等功能的纯Java图片工具库. simpleImageTool的由来,近期需要用到图片处理,通过网上的图片流直接进行缩放水印叠 ...

  3. 修改tomcat编码方式

    打开server.xml <Connector URIEncoding="UTF-8" connectionTimeout="20000" port=&q ...

  4. 如何在Shell中快速切换目录

    1.回到上一次进入的路经cd -2.回到Homecd ~3.自动补齐实例,cd /usr/src/redhat,可以用cd /u[TAB]s[TAB]r[TAB]4.!$ 表示上一个命令的最后一个参数 ...

  5. 安卓平台使用pocketSphinx离线语音识别

    版权声明:本文为elecdog原创文章,可以转载,但必须在明确位置注明出处!谢谢合作. 关于语音识别,国内已经有比较好的公司推出相关的服务了,比如百度免费的离在线融合语音识别以及讯飞收费的在线和离线语 ...

  6. cognos安装和配置即席报表流程

    安装前的配置: 1.  Cognos数据库的创建和用户的创建 注意:字符集需要设置为UTF-8:Cognos用户权限可以给dba: 2.系统上原有JDK的删除(因为Cognos已经自带JDK) 安装- ...

  7. 浅析python 的import 模块(转)

    摘要: 学习python有几天了,对import一直不是很清楚,和C里面的include是否一样,重复引入有问题么?搜索路径是怎样的?整理解决下我的疑问. 一 模块的搜索路径 模块的搜索路径都放在了s ...

  8. ES2017中的修饰器Decorator

    前面的话 修饰器(Decorator)是一个函数,用来修改类的行为.本文将详细介绍ES2017中的修饰器Decorator 概述 ES2017 引入了这项功能,目前 Babel 转码器已经支持Deco ...

  9. 六、vue如何缓存页面

    vue如何和ionic的缓存机制一样,可以缓存页面,在A页面跳转至B页面后返回A页面时A页面的数据还在? 在app.vue中将router-view使用keep-alive包起来,使用v-if来判断使 ...

  10. Selenium+Java显示等待和隐式等待

    描述:用来操作界面上的等待时间,显示等待是等待某一条件满足,条件满足后进行后面的操作:隐式等待是给出一个等待时间,在时间到达之前若满足条件,则立即执行后续操作. public class TestSe ...