Django 学习笔记(五)模板标签
关于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 学习笔记(五)模板标签的更多相关文章
- Django学习笔记之模板
模板 模板介绍 在之前的章节中,视图函数只是直接返回文本,而在实际生产环境中其实很少这样用,因为实际的页面大多是带有样式的HTML代码,这可以让浏览器渲染出非常漂亮的页面. 目前市面上有非常多的模板系 ...
- Django学习笔记之模板渲染、模板语言、simple_tag、母版子版、静态配置文件
一.首先我们用PyCharm来创建一个Django项目 终端命令:django-admin startproject sitename 图形创建: 这样一个Django项目就创建完成了,上面可以看 ...
- Django学习笔记之URL标签的使用
期初用django 开发应用的时候,完全是在urls.py 中硬编码配置地址,在views.py中HttpResponseRedirect()也是硬编码转向地址,当然在template 中也是一样了, ...
- Shiro学习笔记五(Shiro标签,及通配符)
1.首先是导入标签库 <%@taglib prefix="shiro" uri="http://shiro.apache.org/tags" %> ...
- Django学习笔记(五)—— 表单
疯狂的暑假学习之 Django学习笔记(五)-- 表单 參考:<The Django Book> 第7章 1. HttpRequest对象的信息 request.path ...
- Django 学习笔记(四)模板变量
关于Django模板变量官方网址:https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.传入普通变量 在hello/Hell ...
- Django 学习笔记(三)模板导入
本章内容是将一个html网页放进模板中,并运行服务器将其展现出来. 平台:windows平台下Liunx子系统 目前的目录: hello ├── manage.py ├── hello │ ├── _ ...
- Django 学习笔记(六)MySQL配置
环境:Ubuntu16.4 工具:Python3.5 一.安装MySQL数据库 终端命令: sudo apt-get install mysql-server sudo apt-get install ...
- Django学习笔记(9)—— 开发用户注册与登录系统
一,项目题目: 开发用户注册与登录系统 该项目主要练习使用Django开发一个用户注册与登录的系统,通过这个项目然后巩固自己这段时间所学习的Django知识. 二,项目需求: 开发一个简单的用户登录与 ...
随机推荐
- THINKPHP 3.2 PHP SFTP上传下载 代码实现方法
一.SFTP介绍:使用SSH协议进行FTP传输的协议叫SFTP(安全文件传输)Sftp和Ftp都是文件传输协议.区别:sftp是ssh内含的协议(ssh是加密的telnet协议), 只要sshd服 ...
- 设计模式的征途—16.访问者(Visitor)模式
在患者就医时,医生会根据病情开具处方单,很多医院都会存在以下这个流程:划价人员拿到处方单之后根据药品名称和数量计算总价,而药房工作人员根据药品名称和数量准备药品,如下图所示. 在软件开发中,有时候也需 ...
- Java IO(一):IO和File
一.IO 大多数的应用程序都要与外部设备进行数据交换,最常见的外部设备包含磁盘和网络.IO就是指应用程序对这些设备的数据输入与输出,Java语言定义了许多类专门负责各种方式的输入.输出,这些类都被放在 ...
- Verilog 任意(奇数/偶数)分频器
参加过一次笔试,让实现3分频,楼主当时是懵逼的,脑子里只知道同时利用上升沿和下降沿,本来写对了,慌张面试,脑子不管用了,(因为是手写,只能用脑子仿真)后来又给改错了,捂脸... 还是逻辑不清晰,现在自 ...
- git版本控制 for window安装和命令行使用
Git 安装配置 Windows 平台上安装 在 Windows 平台上安装 Git 同样轻松,有个叫做 msysGit 的项目提供了安装包,可以到 GitHub 的页面上下载 exe 安装文件并运行 ...
- Comparable与Comparator,java中的排序与比较
1:比较和排序的概念 比较:两个实体类之间按>,=,<进行比较. 排序:在集合类中,对集合类中的实体进行排序.排序基于的算法基于实体类提供的比较函数. 基本型别都提供了默认的比较算法,如s ...
- Log4net快速配置使用指南。(快速搭建log4net日志平台手册)
每做一个新项目,都会用到log4net,但总是忘记如何快速配置.有时在网上搜半天也找不到好的模板,大都在介绍参数的使用,在此做下总结,争取下次用时仅10分钟就可搭建好log4net. 直接上介绍的步骤 ...
- 中国大学MOOC-陈越、何钦铭-数据结构-2015秋 01-复杂度2 Maximum Subsequence Sum (25分)
01-复杂度2 Maximum Subsequence Sum (25分) Given a sequence of K integers { N1,N2, ..., NK }. ...
- Mysql中让两个字段不同时相同的方法
有时候我们会遇到这样的一种情况:有一些不同的专业,每个专业中有一些不同的学号,专业+学号能对应到个人.这时,应该如何在数据库中定义列,来保证专业+学号对应的学生的唯一性呢? 把学号定义成唯一(UNIQ ...
- VIM的字符编码设置
vim 编码方式的设置和所有的流行文本编辑器一样,Vim 可以很好的编辑各种字符编码的文件,这当然包括UCS-2.UTF-8 等流行的 Unicode 编码方式.然而不幸的是,和很多来自 Linux ...