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知识. 二,项目需求: 开发一个简单的用户登录与 ...
随机推荐
- 看懂 ,学会 .NET 事件的正确姿势
一.事件的本质 举个例子你是个取向正常的青年男性,有个身材火辣,年轻貌美,腿长肤白的美女,冲你一笑,给你讲了一个ABCD羊吃草的故事.你有什么反应?可能你关注点在于颜值,身材,故事,故事含 ...
- Java工程师的终极书单
本份Java工程师的终极书单只在专业的Java技术博客–天天编码上发布,没有授权任何网站与个人转载. 坚持阅读好书是学习Java技术的好方式.但是,市面上与Java技术相关的书籍可谓数不胜数,如何从这 ...
- ASP.NET底层封装HttpModule实例---FormsAuthentication类的分析
HttpModule是用来注册HttpApplication事件的,实现IHttpModule接口的托管代码模块可以访问该请求管道的所有事件.那么对于我们最常用的ASP.NET Forms身份验证模块 ...
- 【samba】samba 用户权限配置(转)
首先要保证你的samba安装并配置好,关于安装和配置samba请参考此文章 http://blog.csdn.net/linglongwunv/archive/2010/01/19/5212875.a ...
- EF 直接修改数据,不再查询数据库
public int UpData(T model, params string[] proNames) { //4.1将 对象 添加到 EF中 DbEntityEntry entry = null; ...
- ajax访问controller,无法通过return $this->goHome()跳转
第一次在yii2中使用ajax来请求controller,做的是第三方登录,facebook和google登录. 登录成功应该跳转到首页,想当然的以为用return $this->goHome( ...
- RabbitMQ入门-初识RabbitMQ
初识RabbitMQ 要说RabbitMQ,我们不得不先说下AMQP.AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面 ...
- C++ STL vector详解
一.解释: vector(向量):是一种顺序容器,事实上和数组差不多,但它比数组更优越.一般来说数组不能动态拓展,因此在程序运行的时候不是浪费内存,就是造成越界.而vector正好弥补了这个缺陷,它 ...
- vue指令v-on示例解析
绑定事件监听器.事件类型由参数指定.表达式可以是一个方法的名字或一个内联语句,如果没有修饰符也可以省略. 1.事件 .click .mouseover .keyup ...... 2.修饰符 .sto ...
- Luogu P3371 【模板】单源最短路径
题目描述 如题,给出一个有向图,请输出从某一点出发到所有点的最短路径长度. 输入输出格式 输入格式: 第一行包含三个整数N.M.S,分别表示点的个数.有向边的个数.出发点的编号. 接下来M行每行包含三 ...