Django后端开发——模版层-过滤器和继承


参考资料

django后端学习B站网课:点击跳转
或者或在浏览器粘贴网址:https://www.bilibili.com/video/BV1vK4y1o7jH?p=11&vd_source=597e21cf34ffcdce468ba00be2177e8a

一、模版过滤器

基础概念

定义

在变量输出时对变量的值进行处理

作用

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

语法

{{ 变量 | 过滤器1:‘参数值1’ | 过滤器2:‘参数值2’ … }}

常用过滤器

在这里插入图片描述

示例

在这里插入图片描述
修改内容(test_html_param.html):

示例1:字符串中字母全都转换成大写

<h3>str is {{ str|upper }}</h3>

示例2:输出int值增大2:

<h3>int{{ int|add:"2" }}</h3>

示例3:
在views.py中添加:

dic['script']='<script>alert(11111)</script>'

在这里插入图片描述
在test_html_param.html中添加:

<h3>script is {{ script }}</h3>

在这里插入图片描述
如果不使用safe过滤器,无法显示弹窗:
在这里插入图片描述
这是因为进行了html转义

因此在test_html_param.html中进行修改:

<h3>script is {{ script|safe }}</h3>

效果

示例1:hahaha变成HAHAHA
在这里插入图片描述
示例2:88变成90
在这里插入图片描述
示例3:
在这里插入图片描述
可以看见弹窗了


二、模版的继承

很多页面的头和尾都是相同的,这就是继承的典型应用

基础概念

在这里插入图片描述
在这里插入图片描述

示例

父模版配置:

base.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    {% block mytitle %}
    <title>主页</title>
    {% endblock %}
</head>
<body>

<a href="/music_index">音乐频道</a>
<a href="/sport_index">体育频道</a>
<br>

{% block info %}
这是主页
{% endblock %}

<br>

<h3>有任何问题联系xxxx</h3>


</body>
</html>
views.py
def base_view(request):

    return render(request,'base.html')
urls.py
path('base_index',views.base_view),
父模版的可替换部分:
1. 标题:
{% block mytitle %}
    <title>主页</title>
    {% endblock %}
2. 说明
{% block info %}
这是主页
{% endblock %}

子模版配置

music.html
{% extends 'base.html' %}

{% block mytitle %}
<title>音乐频道</title>
{% endblock %}

{% block info %}
欢迎来到音乐频道
{% endblock %}
sport.html
{% extends 'base.html' %}

{% block mytitle %}
<title>体育频道</title>
{% endblock %}

{% block info %}
欢迎来到体育频道
{% endblock %}
views.py
def music_view(request):

    return render(request,'music.html')

def sport_view(request):

    return render(request,'sport.html')
urls.py
	path('music_index',views.music_view),
    path('sport_index',views.sport_view)

效果

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

规则及注意事项

在这里插入图片描述
父模版传递的变量子模版拿不到
纯模版技术,没有走子模版视图函数

  • 27
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

^_^2412

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值