模板层-过滤器与继承

模板过滤器

定义:在变量传输时对变量的值进行处理

作用:可以通过使用过滤器来改变变量的输出显


语法:{{变量|过滤器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 %}

重写的覆盖规则

        不重写,将按照父模板的效果显示

        重写,则按照重写效果显示

注意

        模板继承时,服务器端的动态内容无法继承

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值