-
-
模板语法之标签(类似于流程控制)
-
自定义过滤器、标签、inclusion_tag
-
模板的继承
-
模板的导入
-
测试环境搭建
模板语法之过滤器
1.语法结构
{{数据对象|过滤器名称:参数}} 过滤器最多只能额外传输一个参数
2.常见过滤器
统计数据的长度:{{s1|length}}
算数加法或者字符串加法:{{n1|add:666}}
将数字转成合适的文件计量单位:{{file_size|filesizeformat}}
判断当前数据对象对应的布尔值是否是False:{{s1|default:'前面的值对应的布尔值是Flase'}}
时间格式化:{{ctime|date:'Y-m-d'}}
索引切片:{{s1|slice:'0:6'}}
按照空格截取指定个数的文本:{{s1|truncatewords:5}}
按照字符个数截取文本(包含三个点):{{s1|truncachars:6}}
移除指定的字符:{{info|cut:'|'}}
是否取消转换:{{ scripts1|safe }}
ps:最后一个|safe启发了我们以后用django开发全栈项目前端页面代码(主要指HTML代码)也可以在后端编写
模板语法之标签
"""
在django模板语法中写标签的时候 只需要写关键字然后tab键就会自动补全
"""
1.语法结构
{% 名字 ...%}
{% end名字 %}
2.if判断
{% if 条件1 %}
<p>在吗?</p>
{% elif 条件2 %}
<p> 我爱你 </p>
{% else %}
<p> 滚 </p>
{% endif %}
3.for循环
提供了forloop关键字
forloop.counter 总是一个表示当前循环的执行次数的整数计数器。 这个计数器是从1开始的,所以在第一次循环时 forloop.counter 将会被设置为1。
{% for item in todo_list %}
<p>{{ forloop.counter }}: {{ item }}</p>
{% endfor %}
forloop.counter0 类似于 forloop.counter ,但是它是从0计数的。 第一次执行循环时这个变量会被设置为0。
forloop.revcounter 是表示循环中剩余项的整型变量。 在循环初次执行时 forloop.revcounter 将被设置为序列中项的总数。 最后一次循环执行中,这个变量将被置1。
forloop.revcounter0 类似于 forloop.revcounter ,但它以0做为结束索引。在第一次执行循环时,该变量会被置为序列的项的个数减1。
forloop.first 是一个布尔值,如果该迭代是第一次执行,那么它被置为```` 在下面的情形中这个变量是很有用的:
System Message: WARNING/2 (<string>, line 1071); backlink
Inline literal start-string without end-string.
{% for object in objects %}
{% if forloop.first %}<li class="first">{% else %}<li>{% endif %}
{{ object }}
</li>
{% endfor %}
forloop.last 是一个布尔值;在最后一次执行循环时被置为True。 一个常见的用法是在一系列的链接之间放置管道符(|)
{% for link in links %}{{ link }}{% if not forloop.last %} | {% endif %}{% endfor %}
"""
for+if其他使用
{% for i in l1 %}
{% if forloop.first %}
<p>这是第一次循环</p>
{% elif forloop.last %}
<p>这是最后一次循环</p>
{% else %}
<p>中间循环</p>
{% endif %}
{% empty %}