Django模板之模板标签
标签比变量更加复杂:一些在输出中创建文本,一些通过循环或逻辑来控制流程,一些加载其后的变量将使用到的额外信息到模版中。
一些标签需要开始和结束标签 (例如:{% tag %} ...标签 内容 ... {% endtag %}),有些标签不需要结束{% tag %}
快捷键:输入tag直接回车
常用模板标签:for if with [csrf_token extends include block url load]见后续页面
for标签:循环遍历可迭代变量中的每一个元素,没有break和continue等复杂功能,相关操作类比python。
(1)遍历列表:
tagtest.html模板:
{% for name in name_list %}
<li>{{ name }}</li>
{% endfor %}
反向遍历:
{% for name in name_list reversed %}
<li>{{ name }}</li>
{% endfor %}
views.py视图:
def tagtest(request):
list=["zhang","wang","li"]
return render(request,"tagtest.html",{"name_list":list})
渲染结果:

(2)列表中字典取值:
tagtest.html模板:
{% for info_dic in name_list %}
<li>{{ info_dic.name }}</li>
{% endfor %}
views.py视图:
def tagtest(request):
list=[{"name":"le"},{"name":"yang"},{"name":"he"}]
return render(request,"tagtest.html",{"name_list":list})
渲染结果:

(3)遍历字典:
tagtest.html模板:
{% for k,v in info_dict.items %}
<li>{{ k }}:{{ v }}</li>
{% endfor %}
views.py视图:
def tagtest(request):
dic={"name":"yang","age":20,"sex":"male"}
return render(request,"tagtest.html",{"info_dict":dic})
渲染结果:

(4)for…empty…:for遍历一个空的变量或者未找到时执行empty
tagtest.html模板:
{% for info_dic in name_list %}
<li>{{ info_dic.name }}</li>
{% empty %}
<p>给出的变量为空或者未找到!</p>
{% endfor %}
views.py视图:
def tagtest(request):
list=[]
return render(request,"tagtest.html",{"name_list":list})
渲染结果:

(5)forloop使用案例:
tagtest.html模板:
{% for i in l %}
<li>{{ forloop }}---{{ i }}</li>
{% endfor %}
配合属性使用:
{% for i in l %}
<li>{{ forloop.counter }}---{{ i }}</li>
{% endfor %}
views.py视图:
def tagtest(request):
li=["python","mysql","web"]
return render(request,"tagtest.html",{"l":li})
渲染结果:

注:循环序号可以通过{{forloop}}显示,必须在循环内部用:
|
forloop.counter |
当前循环的索引值(从1开始),forloop是循环器,通过点来使用功能 |
|
forloop.counter0 |
当前循环的索引值(从0开始) |
|
forloop.revcounter |
当前循环的倒序索引值(从1开始) |
|
forloop.revcounter0 |
当前循环的倒序索引值(从0开始) |
|
forloop.first |
当前循环是不是第一次循环(布尔值) |
|
forloop.last |
当前循环是不是最后一次循环(布尔值) |
|
forloop.parentloop |
本层循环的外层循环的对象,再通过上面的几个属性来显示外层循环的计数等 |
if标签:判断变量的逻辑值是进行选择性的输出,类比python(< > = <= >= != == and or not not in is is not前后必须要有空格)
tagtest.html模板:
{% if num > 100 %}
<h1>大于100</h1>
{% elif num < 100 %}
<h1>小于100</h1>
{% else %}
<h1>等于100</h1>
{% endif %}
views.py视图:
def tagtest(request):
n=100
return render(request,"tagtest.html",{"num":n})
渲染结果:

with标签:多用于给一个复杂的变量起别名
注意:等号左右不要加空格。
{% with total=business.employees.count %}
{{ total }} <!--只能在with语句体内用-->
{% endwith %}
或
{% with business.employees.count as total %}
{{ total }}
{% endwith %}
Django模板之模板标签的更多相关文章
- python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器
python3.5 manage.py runserver python Django教程 之模板渲染.循环.条件判断.常用的标签.过滤器 一.Django模板渲染模板 1. 创建一个 zqxt_tm ...
- django模板 内建标签
autoescape 控制当前自动转义的行为,有on和off两个选项 {% autoescape on %} {{ body }} {% endautoescape %} block 定义一个子模板可 ...
- 测试开发之Django——No6.Django模板中的标签语言
模板中的标签语言 1.if/else {% if %} 标签检查(evaluate)一个变量,如果这个变量为真(即:变量存在,非空,不是布尔值假),系统会显示在{% if %} 和 {% endi ...
- 11:django 模板 内建标签
django 内建标签 autoescape 控制当前自动转义的行为,有on和off两个选项 {% autoescape on %} {{ body }} {% endautoescape %} bl ...
- Django内置模板标签
Django内置标签总览 可以查询下表来总览Django的内置标签: 标签 说明 autoescape 自动转义开关 block 块引用 comment 注释 csrf_token CSRF令牌 cy ...
- Django框架之【自定义模板过滤器与标签】
本文在我的微信公众号的链接:https://mp.weixin.qq.com/s?__biz=MzU5NTU5MjcwNw==&mid=2247483674&idx=1&sn= ...
- Django项目中模板标签及模板的继承与引用【网站中快速布置广告】
Django项目中模板标签及模板的继承与引用 常见模板标签 {% static %} {% for x in range(x) %}{% endfor %} 循环的序号{% forloop %} 循环 ...
- Django模板语言,标签整理
Django模板语言 标签 内置标签引用 1. autoescape 控制自动转义是否可用. 这种标签带有任何 on 或 off 作为参数的话,他将决定转义块内效果. 该标签会以一个endautoes ...
- django,模板继承常用标签和规则
一.定义基础模板 在html内容中定义多个block块,block由子模板引用同名block块,来决定是否替换这些部分{% block title %}一些内容,这里可不填{% endblock %} ...
- django学习-7.html模板中include标签使用场景
1.前言 假设一个公司A有一个网站B,且网站B有5个不同的页面分别为C1,C2,C3,C4,C5. 那么,我们在打开这5个不同页面后去查看页面的整体内容,会发现每个页面的顶部内容.底部内容都一模一样. ...
随机推荐
- QT QLabel内容太长时候使用省略号
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/xiezhongyuan07/articl ...
- C++操作Kafka使用Protobuf进行跨语言数据交互
C++操作Kafka使用Protobuf进行跨语言数据交互 Kafka 是一种分布式的,基于发布 / 订阅的消息系统.主要设计目标如下: 以时间复杂度为 O(1) 的方式提供消息持久化能力,即使对 T ...
- css套路学习(一)
css3信息获取方法 文档搜索:Google css spec; Google: 关键词 MDN; css tricks成熟css代码块sinppets; Google: center css tri ...
- SQLCommand 相关应用
SQL command 对象:执行指定数据库中相应的操作 (执行相应的SQL语句)string str1 = "select * from tb_student "Create: ...
- 在独立的 Root 和 Home 硬盘驱动器上安装 Ubuntu
安装 Linux 系统时,可以有两种不同的方式.第一种方式是在一个超快的固态硬盘上进行安装,这样可以保证迅速开机和高速访问数据.第二种方式是在一个较慢但很强大的普通硬盘驱动器上安装,这样的硬盘转速快并 ...
- linux之centos安装jdk以及nginx详细过程
一.安装jdk 1:首先下载jdk到本地,然后通过git 上传到linux服务器上 2:进入目录usr,并创建目录java,将jdk的压缩文件移动到该目录下 cd /usr mkdir java mv ...
- HTML5学习笔记之表格标签
HTML5学习笔记之表格标签 其他HTML5相关文章 HTML5学习笔记之HTML5基本介绍 HTML5学习笔记之基础标签 HTML5学习笔记之表格标签 HTML5学习笔记之表单标签 HTML5学习笔 ...
- RxJava2源码解析(二)
title: RxJava2源码解析(二) categories: 源码解析 tags: 源码解析 rxJava2 前言 本篇主要解析RxJava的线程切换的原理实现 subscribeOn 首先, ...
- GPTL—练习集—006树的遍历
#include<bits/stdc++.h> using namespace std; typedef int daTp;//datatype typedef struct BTNode ...
- 【K8S】K8S 1.18.2安装dashboard(基于kubernetes-dashboard 2.0.0版本)
[K8S]K8S 1.18.2安装dashboard(基于kubernetes-dashboard 2.0.0版本) 写在前面 K8S集群部署成功了,如何对集群进行可视化管理呢?别着急,接下来,我们一 ...