Django模板过滤器和继承示例详解
作者:NGUP_LEE 发布时间:2023-10-25 16:52:56
标签:django,模板,过滤器
模板过滤器
定义:在变量输出时对变量的值进行处理
作用:可以通过使用过滤器来改变变量的输出显示
语法:{{变量 | 过滤器:'参数值1' | 过滤器2:'参数值2' ...}}
常用的过滤器
过滤器 | 说明 |
---|---|
lower | 将字符串全部转换为小写 |
upper | 将字符串全部转换为大写 |
safe | 默认不对变量内的字符串进行 html 转义 |
add:“n” | 将calue值增加n |
truncatechars:‘n' | 如果字符多于指定的字符数量,那么会被截断。截断的字符串将以可翻译的省略号序列("…")结尾 |
模板的继承
模板的继承可以使父模板的内容重用,子模板直接继承父模板的全部内容并可以覆盖父模板中响应的块
语法(父模板):
定义父模板中的块 block 标签
标识出哪些在字模块中是允许被修改的
block 标签:在父模板中定义,可以再子模板中覆盖
语法(子模板):
继承模板,extends
标签,写在模板文件的第一行
例如: {% extends ‘base.html' %}
子模板重写父模板中的内容块
{% block block_name %}
需要覆盖 block_name 块的内容
{% endblock block_name %} #此时的 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')
在 templates文件夹中写入对应html文件:
base.html
music.html
sport.html
base.html
<head>
<meta charset="utf-8">
{% block mytitle %}
<title> 主页 </title>
{% endblock mytitle%}
</head>
<body>
<a href="/music_index"> 音乐频道 </a>
<a href="/sport_index"> 体育频道 </a>
<br>
{% block info %}
这是主页
{% endblock info %}
<h3>有问题请联系XXXX</h3>
</body>
</html>
sport.html
{% extends 'base.html' %}
{% block mytitle %}
<title> 体育频道 </title>
{% block info %}
欢迎来到体育频道
{% endblock info %}
music.html
{% extends 'base.html' %}
{% block mytitle %}
<title> 音乐频道 </title>
{% block info %}
欢迎来到音乐频道
{% endblock info %}
在url.py里绑定对应路由
path('base_index',views.base_view)
path('music_index',views.music_view)
path('sport_index',views.sport_view)
测试结果
注意:模板继承时,服务器端的动态内容无法继承
来源:https://blog.csdn.net/NGUP_LEE/article/details/121024247


猜你喜欢
- 本文实例为大家分享了python webp图片格式转化的具体代码,供大家参考,具体内容如下1、将本地的webp图片转换为jpg2、将下载的w
- DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。DATEDIFF() 函数返回两个日期之间的时间差。
- String转换为time存进数据库很久没试过将String类型转换并存进数据库中的date类型的字段,今天刚好遇到并解决了这个小问题,故写
- 在安装某个包的时候出现如下错误然后按照提示运行python -m pip install --upgrade pip并更新pip后再次运行p
- pycharm右键新建时会有目录(文件夹)和python package两个选项,这两个到底有什么不同呢1.原来在python模块的每一个包
- 在使用Celery统计每日访问数量的时候,发现一个任务会同时执行两次,发现同一时间内(1s内)竟然同时发送了两次任务,也就是同时产生了两个w
- 本文实例讲述了Java开发之Spring连接数据库方法。分享给大家供大家参考,具体如下:接口:package cn.com.service;
- 1 关于 Matplotlib 模块Matplotlib 是一个由 John Hunter 等开发的,用以绘制二维图形的 Python 模块
- 方法一:(by yangedie )这几天刚刚做了这个东西,有网友问到,所以分享一下。ie6、firefox2 通过,麻烦有ie7的网友测试
- 到了今天,数据库已经成了网站的灵魂,可以说,没有对数据进行集中管理就算不上是一个真正的网站。而ASP加数据库,更成了主流中的主流,网站里的用
- 一、前言 英语单词之间是通过空格分隔的,但是中文却不存在空格的概念,因此需要
- 代码如下:# -*- coding: utf-8 -*-#!/usr/bin/python# filename: todo.py# code
- 分页一般和表格一起用,分页链接作为表格的一部分,将分页链接封装成一个独立的组件,然后作为子组件嵌入到表格组件中,这样比较合理。效果:代码:1
- python和PHP的难易程度并没有明确的界限,如果是零基础的小白,建议学php会好一些,原因大公司小公司创业公司非互联网公司,都会用到ph
- Ajax 技术改变了大型商业 Web 应用程序的外观,但是许多较小的 Web 站点都不具备足够的资源重新构建完整的用户界面(UI)。Ajax
- //Paul Tero, July 2001 //http://www.tero.co.uk/des/ // //Optimised for
- 在停止和开始进度条的同时,将进度条清空的动作也是常常需要用到的。具体用法如下:self.progressBar = QProgressBar
- 历时半年,我独自一人完成了一个局级单位的管理信息系统,共发布BETA版29次,正式版本3次。ASP+ORACLE环境,285个ASP文件,功
- --处理表重复记录(查询和删除)/*****************************************************
- Mysql安装的时候可以有msi安装和zip解压缩两种安装方式。zip压缩包解压到目录,要使用它还需对它进行一定的配置。下面对Mysql压缩