关于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. 干货:基于 Git Flow 的 Git 最佳实践(附加解决大家经常碰到的问题)

    突然想写这一篇Git的使用心得,主要有几个原因,其一是自己使用Git也有快3年时间了,其间自己经历过一些坑,也有迷茫的时候,在呆过的大大小小的团队中,其实每个人也都并不是Git专家,很多对于流程以及G ...

  2. Mybatis JPA 代码构建

    前段时间了解到Spring JPA,感觉挺好用,但其依赖于Hibernate,本人看到Hibernate就头大(不是说Hibernate不好哈,而是进阶太难),于是做了一个迷你版的Mybatis JP ...

  3. Spring源码情操陶冶-AbstractApplicationContext#postProcessBeanFactory

    阅读源码有利于陶冶情操,承接前文Spring源码情操陶冶-AbstractApplicationContext#prepareBeanFactory 约定:web.xml中配置的contextClas ...

  4. EasyUi+Spring Data 实现按条件分页查询

    Spring data 介绍 Spring data 出现目的 为了简化.统一 持久层 各种实现技术 API ,所以 spring data 提供一套标准 API 和 不同持久层整合技术实现 . 自己 ...

  5. redis 一般性使用概述

    最近一段时间与redis接触比较频繁.发现有些东西还是工作中经常会用到的,自己也花了点时间巩固下.本篇文章主要是以总结性的方式梳理,因为redis的主题很大,任何一个技术点展开都是几篇文章的量.也可以 ...

  6. 解决ionic中 Action Sheets 在安卓机中的样式

    /** * Action Sheets for Android * -------------------------------------------------- */ .platform-an ...

  7. OVS故障处理一例

    OVS下无法访问内部网站 遇到朋友求助的一个客户问题,环境是这样的,客户在自己的iaas平台(不是openstack)上使用ovs,物理交换机上配置vlan和dhcp service,计算节点的ovs ...

  8. git分支管理之分支管理策略

    分支管理策略 阅读: 246888 通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就 ...

  9. 教你用python写:HDU刷题神器

    声明:本文以学习为目的,请不要影响他人正常判题 HDU刷题神器,早已被前辈们做出来了,不过没有见过用python写的.大一的时候见识了学长写这个,当时还是一脸懵逼,只知道这玩意儿好屌-.时隔一年,决定 ...

  10. JavaScript闭包只学这篇就够了

    闭包不是魔法 这篇文章使用一些简单的代码例子来解释JavaScript闭包的概念,即使新手也可以轻松参透闭包的含义. 其实只要理解了核心概念,闭包并不是那么的难于理解.但是,网上充斥了太多学术性的文章 ...