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个不同页面后去查看页面的整体内容,会发现每个页面的顶部内容.底部内容都一模一样. ...
随机推荐
- 详解 Discuz 的 PHP经典加密解密函数 authcode
函数注释: // $string: 明文 或 密文 // $operation:DECODE表示解密,其它表示加密 // $key: 密匙 // $expiry:密文有效期 function auth ...
- 关于XSS弹窗的小姿势
最近快比赛了想刷刷题,做合天XSS进阶的时候遇到了过滤了alert然后还要弹窗效果的题目,这让我这个JS只学了一点点的菜鸡倍感无力. 在百度了其他资料后,发现confirm('xss')和pr ...
- awk命令及随机数的产生
3.sed 操作,将文件第9行至第15行的数据复制到第十六行 sed -i '9,15H;16G' 文件 4.用awk获取文件中的三行的倒数第二列字段 awk -F":" 'NR ...
- CodeForces 674C Levels and Regions
#include<bits/stdc++.h> using namespace std; const int maxn=2e5+5; int N,K,head,tair; int q[ma ...
- css之颜色表示法
css之颜色表示法 十六进制颜色 所有浏览器都支持十六进制颜色值. 十六进制颜色是这样规定的:#RRGGBB,其中的 RR(红色).GG(绿色).BB(蓝色)十六进制整数规定了颜色的成分.所有值必须介 ...
- 【高并发】又一个朋友面试栽在了Thread类的stop()方法和interrupt()方法上!
写在前面 新一轮的面试已经过去,可能是疫情的原因吧,很多童鞋纷纷留言说今年的面试题难度又提高了,尤其是对并发编程的知识.我细想了下,也许有那么点疫情的原因吧,但无论面试的套路怎么变,只要掌握了核心知识 ...
- 【DNS域名解析命令】 dig
dig - DNS lookup utility dig 命令主要用来从 DNS 域名服务器查询主机地址信息. Dig (domain information groper 域名信息搜索)是一个灵活的 ...
- A Tile Painting(循环节)
Ujan has been lazy lately, but now has decided to bring his yard to good shape. First, he decided to ...
- 题目分享N
题意:有辆车,有r行,s*2列,在第s列和第s+1列之间有个过道,出口在第r+1行的过道处,现在给出每个人的位置(行号和列号),每人每次只能动一格,问最少耗费多长时间全员才能逃出去 分析:假如车上只有 ...
- win7 64位系统使用vs2010编译OSG3.2.1
首先我想说的是,osg是有二进制安装包的:http://openscenegraph.alphapixel.com/osg/downloads/free-openscenegraph-binary-d ...