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)

测试结果



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

总结

到此这篇关于Django模板过滤器和继承的文章就介绍到这了,更多相关Django模板过滤器和继承内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详解Django模板层过滤器和继承的问题

    过滤器 模板层对变量的操作实际还有很多,过滤器就是其中一种.学过Linux系统的一定知道管道操作符,其可以将上一步输出直接作为下一步输入进行处理,这里的过滤器就是类似管道符,其写法也是以管道符|为标志,允许我们对模板层获得的变量进行改变,例如大小写转换.增减大小等等 语法 {{ 变量|过滤器1|过滤器2:'值' |...}} 这里的过滤器可以分为两类,一类是不带参数的,例如lower,upper,safe:一类是带参数的add:'10',冒号分隔,后面跟上值 过滤器 示例 说明 lower {{

  • Django自定义模板过滤器和标签的实现方法

    现在我们已经很熟悉Django的MTV模式了.模板(template)负责如何去展示数据,而视图(view)负责筛选出正确的数据.因此通常来说逻辑都是放到视图中的,但模板也需要一些 和表示相关的逻辑 :比如循环展示(如 {% for ... %} ).或者以某种特定格式输出(如 {{ ...|date:'Y-m-d' }} )等,这些功能都是靠模板的 过滤器(filters) 和 标签(tags) 实现的. Django的模板语言包含了很多内置的过滤器和标签,设计目的是满足应用需要占位逻辑需求.

  • Django 模板中常用的过滤器实现

    模版常用过滤器 在模版中,有时候需要对一些数据进行处理以后才能使用.一般在Python中我们是通过函数的形式来完成的.而在模版中,则是通过过滤器来实现的.过滤器使用的是|来使用. add 将传进来的参数添加到原来的值上面.这个过滤器会尝试将值和参数转换成整形然后进行相加.如果转换成整形过程中失败了,那么会将值和参数进行拼接.如果是字符串,那么会拼接成字符串,如果是列表,那么会拼接成一个列表.示例代码如下: {{ value|add:"2" }} 如果value是等于4,那么结果将是6.

  • 在Django框架中自定义模板过滤器的方法

    自定义过滤器就是有一个或两个参数的Python函数: (输入)变量的值 参数的值, 可以是默认值或者完全留空 例如,在过滤器 {{ var|foo:"bar" }} 中 ,过滤器 foo 会被传入变量 var 和默认参数 bar. 过滤器函数应该总有返回值. 而且不能触发异常,它们都应该静静地失败. 如果出现错误,应该返回一个原始输入或者空字符串,这会更有意义. 这里是一些定义过滤器的例子: def cut(value, arg): "Removes all values o

  • Django模板过滤器和继承示例详解

    目录 模板过滤器 模板的继承 模板继承样例 总结 模板过滤器 定义:在变量输出时对变量的值进行处理 作用:可以通过使用过滤器来改变变量的输出显示 语法:{{变量 | 过滤器:'参数值1' | 过滤器2:'参数值2' ...}} 常用的过滤器 过滤器 说明 lower 将字符串全部转换为小写 upper 将字符串全部转换为大写 safe 默认不对变量内的字符串进行 html 转义 add:"n" 将calue值增加n truncatechars:'n' 如果字符多于指定的字符数量,那么会

  • vue实例成员 插值表达式 过滤器基础教程示例详解

    目录 一. 什么是Vue 二.为什么学Vue 三.如何使用Vue 下载安装? 插值表达式 四.vue特点 1.虚拟DOM 2.数据的双向绑定 3.单页面应用 4.数据驱动 五.Vue实例 六.实例成员 - 挂载点 | el - 自定义插值表达式括号| delimiters - 数据 | data - 过滤器 | filters - 方法 | methods - js对象(即字典)补充 - 插值表达式转义 | delimters - 计算属性 | computed - 监听属性 | watch 一

  • Django模板标签中url使用详解(url跳转到指定页面)

    django {% url %} 模板标签使用 inclusions/_archives.html ... {% for date in date_list %} <li> <a href="{% url 'blog:archive' date.year date.month %}" rel="external nofollow" > {{ date.year }} 年 {{ date.month }} 月 </a> </l

  • GoJs分组绘图模板go.Group使用示例详解

    目录 前言 Group的使用 Group的属性 handlesDragDropForMembers.isSubGraphExpanded属性 isSubGraphExpanded属性 ungroupable.wasSubGraphExpanded属性 结语 前言 在可视化图形中,很多的节点和连线都有某一个特征或者属于某些分类,为了在使用可视化图形的时候更加直观的看出相同类型节点的集合,我们就会用到分组的绘图模板. Group的使用 //data nodes: [ { key: "1",

  • Django如何实现内容缓存示例详解

    前言 本文主要给大家介绍了关于Django实现内容缓存的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 1.缓存的简介 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗很多的服务端资源,所以必须使用缓存来减轻后端服务器的压力. 缓存是将一些常用的数据保存内存或者memcache中,在一定的时间内有人来访问这些数据时,则不再去执行数

  • java教程之java继承示例详解

    什么是继承(extends)? 继承是:新定义的类是从已有的类中获取属性和方法的现象. 这个已有的类叫做父类, 从这个父类获取属性和方法的类叫做子类. ExtendsDemo1.java 复制代码 代码如下: /*什么是继承*/public class ExtendsDemo1 {    public static void main(String[] args) {        Truck t = new Truck();        t.size = 100;           //不

  • Django中的模型类设计及展示示例详解

    django中设计数据模型类是基于ORM的对象关系映射更方便的进行数据库中的数据操作. 对象关系映射 把面向对象中的类和数据库表--对应,通过操作类和对象,对数表实现数据操作,不需要写sql,由ORM框架生成 django实现了ORM框架,在项目中与数据库之间产生桥梁作用 django数据库定义模型的步骤如下: python manage.py makemigrations python mange.py migrate 在应用models.py中编写模型类,继承models.Model类 在模

  • Go语言基础模板设计模式示例详解

    目录 概述 模板模式生活案例 策略模式涉及到两个角色 UML 总结 示例 概述 模板方法模式定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式.让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤 确定了步骤的执行顺序,单某些步骤因环境或人等因素具体实现是未知的 模板模式生活案例 请客吃饭[点菜->吃东西->结账],每个人点菜不一样,吃东西不一样,结账也不一样从某地到某地[起点->出行方式->终点]起点和终点不一一样,但是每个人出行方式是不一样的 Go没有封装.

  • django中使用memcached示例详解

    目录 什么是memcached: 安装和启动memcached: windows linux(ubuntu) 启动memcached: telnet操作memcached: 添加数据: 获取数据: 删除数据: 通过python操作memcached: memcached的安全性: 在Django中使用memcached: 什么是memcached: memcached之前是danga的一个项目,最早是为LiveJournal服务的,当初设计师为了加速LiveJournal访问速度而开发的,后来被

  • GoJs图形绘图模板Shape示例详解

    目录 前言 Shape的使用 width和height属性 fill属性 stroke.strokeWidth.strokeDashArray属性 geometry属性 angle.scale属性 strokeCap strokeJoin属性 拓展 结语 前言 在可视化图形的展示过程中,节点内部往往不只是有文字描述,这样看起来很往往比较枯燥.在这个时候我们就可以在图形的节点内部加入一些几何图形.然后实现图形和文字的结合使用的话,不仅可以让节点内的内容更加形象,而且还可以通过图形标记对不同类型的节

随机推荐