模板
1.将模板views.py中视图函数中数据传递给模板(xxx.html)
render(reequest,'模板名',context={key:value,key:value})
2.在模板中获取context传递的值:
{{key}}
过滤器
添加在变量上的过滤
字符串类型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
{# 模板注释 #}
<div>{{ msg | length }}</div> {# msg的长度 #}
<div>{{ msg | safe }}</div> {# 安全的编译整个msg里的内容 #}
<div>{{ msg | safe |title }}</div> {# 安全的编译整个msg里的内容并且全部大写 #}
<div>{{ msg }}</div> {# 获取msg内容 #}
<div>{{ msg |title}}</div> {# 全部大写 #}
<div>{{ msg |capfirst}}</div> {# 首字母大写 #}
<div>{{ msg |upper}}</div> {# msg全部大写 #}
<div>{{ msg |lower}}</div> {# msg全部小写 #}
<div>{{ msg |cut:''}}</div> {# 替换 #}
<div>{{ msg |default:'bad boy'}}</div> {# 如果没有内容显示default里的内容 #}
</body>
</html>
数值类型
<div>{{ number |add:100}}</div> {# 加100 #}
<div>{{ number |add:-10}}</div> {# 减10 #}
<div>{{ score |floatformat}}</div> {# 后面不加:值的话默认保留一位小数 #}
<div>{{ score |floatformat:0}}</div> {# 保留0位小数 #}
<div>{{ score |floatformat:2}}</div> {# 保留两位小数 #}
列表类型
<div>{{ lists |first }}</div> {# 列表第一个 #}
<div>{{ lists |last }}</div> {# 列表最后一个 #}
<div>{{ lists |length }}</div> {# 列表长度 #}
<div>{{ lists |join:'*' }}</div> {# 列表以*做拼接 #}
<div>{{ lists |slice:'3' }}</div> {# 切片到下标为3的位置 #}
<div>{{ lists |random }}</div> {# 随机选择 #}
时间类型
<div>{{ dt }}</div> {# 显示当前时间 #}
<div>{{ dt |date:'Y年m月d日 A' }}</div> {# 显示年月日 是上午还是下午 #}
<div>{{ dt |time:'H:i' }}</div> {# 显示时间 #}
tag标签
if标签
{% if lists %}
<div>{{ lists }}</div>
{% else %}
<h1>没有任何内容</h1>
{% endif %}
for标签
<div>
<ul>
{% for lis in lists %}
<li>{{ lis }}</li>
{% empty %}
<h1>没有内容</h1>
{% endfor %}
</ul>
</div>
for标签与table的使用
<div>
<table border="1" cellpadding="0" width="80%">
{% for lis in lists %}
<tr>
<td>{{ forloop.counter }}</td> {# counter后面接0就是从0开始 可以实现循环计数 #}
<td>{{ lis }}</td>
</tr>
{% endfor %}
</table>
</div>
模板继承
1.做父模板 base.html
2.父模板中哪里是变化的内容就在那里“挖坑”
{% block 名字%}
{% endlock %}
3.子模版使用父模板:
删除所有子模版中的内容
在第一行添加:{%extends ‘父模板的名字’%}
4.子模版:
继承的不能符合需求就要添加自己的,通过‘填坑’
{% block 名字%}
。。。。。。。
{% enblock %}
5.使用子模版