模板过滤器
定义:在变量传输时对变量的值进行处理
作用:可以通过使用过滤器来改变变量的输出显
语法:{{变量|过滤器1:‘参数值1’|过滤器2:‘参数值2’...}}示
官方文档:https://docs.djangoproject.com/en/2.2/ref/templates/builtins/
过滤器 | 说明 |
lower | 将字符串转换为全部小写 |
upper | 将字符串转换为大写形式 |
safe | 默认不对变量内的字符串进行html转义 |
add:'n' | 将value的值增加n |
truncatechars:'n' | 如果字符串字符多于指定的字符数量,那么会被截断。截断的字符串将以可翻译的省略号序列(‘......’)结尾。 |
.... |
模板的继承:
模板继承可以使父模板的内容重用,子模板直接继承父模板的全部内容并可以覆盖父模板中相应的块
语法 - 父模板中:
定义父模板中的块block标签
表示出哪些在子模块中是允许被修改的
block标签:在父模板中定义,可以再子模板中覆盖
语法 - 子模板中:
继承模板extends标签(写在模板文件的第一行)
例如{% extends'base.html' %}
子模板重写父模板中的内容块
{% block block_name %}
子模板块用来覆盖父模板中block_name块的内容
{% endblock block_name %}
例如
views.py
def base_view(request):
return render(request,'base.html')
def music_view(request):
return render(request,'music.html')
def sport_view(request):
return render(request,'sport.html')
base.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
{% block mysitle %}
<title>主页</title>
{% endblock %}
</head>
<body>
<a href="/music">音乐频道</a>
<a href="/sport">体育频道</a>
<br>
{% block info %}
这是主页
大法师所所所所所所所所所所所所
所所所所所所所所所所所所所所所所v
{% endblock %}
<br>
<h3>有任何问题联系xxxxxxxxxxxxxx</h3>
</body>
</html>
music.py
{% extends 'base.html' %}
{% block mytitle %}
<title>音乐频道</title>
{% endblock %}
{% block info %}
欢迎光临音乐频道
{% endblock %}
sport.py
{% extends 'base.html' %}
{% block mytitle %}
<title>体育频道</title>
{% endblock %}
{% block info %}
欢迎光临体育频道
{% endblock %}
重写的覆盖规则
不重写,将按照父模板的效果显示
重写,则按照重写效果显示
注意
模板继承时,服务器端的动态内容无法继承