关于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. 微信小程序多宫格抽奖

    最近闲来无事,做了一个多宫格抽奖的例子,有什么需要改进或者错误的地方,请留言,谢谢 首先看效果 思路是先让其转动2圈多,然后再进行抽奖,格子运动用的是setTimeout,让其运行的时间间隔不一样,然 ...

  2. 学会用requirejs,5分钟足矣

    学会用requirejs,5分钟足矣 据说公司的项目较多的用到requirejs管理依赖,所以大熊同学挤出了5分钟休息时间学习了一下,现在分享一下.如果你想了解requirejs的实现原理,请绕道!如 ...

  3. 连接池报错 Proxool Provider unable to load JAXP configurator file: proxool.xml

    上篇博文讲到简易配置 proxool 连接池:http://www.cnblogs.com/linnuo/p/7232380.html 由于把说明注释留在了 proxool.xml 配置文件里导致配置 ...

  4. 数据处理之pandas简单介绍

    Offical Website :http://pandas.pydata.org/ 一:两种基本的数据类型结构 Series 和 DataFrame 先来看一下Series import panda ...

  5. Struts2漏洞解决

    如果你也正在使用Struts2作为web层框架做开发或者做公司的送检产品,然后被告知有各种各样的Struts2漏洞,那本篇博客值得你花时间来喽上一两眼. 前端时间抽空为公司做了新一代的送检产品,为了方 ...

  6. java垃圾回收过程

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

  7. OC和JS的交互

    1.引入类拓展UIWebView+TS_JavaScriptContext, 这个类拓展是能在JSCotext出现的时候就可以拿到. 因为一般情况下JSCotext在webViewDidFinishL ...

  8. 从入门到放弃,.net构建博客系统(一):系统构建篇

    demo:http://tonyblogs.top/ Git源码:https://github.com/Halifa/TonyBlogs 项目采用的技术有:asp.net mvc4 + autofac ...

  9. oracle中decode的一些巧妙用法

    1.符号函数sign在decode中的用法--比较大小 select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值sign()函数根据某个值是0 ...

  10. 【社交系统研发日记】如何在 Laravel 中 “规范” 的开发验证码发送功能

    顺便发个小通知:7月15日ThinkSNS+开源版发布,同时非开源的APP也走出内测阶段,体验二维码也全面发布体验. 什么是ThinkSNS ? ThinkSNS(简称TS),一款全平台综合性社交系统 ...