Python全系列 教程
3567个小节阅读:5930.3k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
模版继承可以把一些公用的代码单独抽取出来放到一个父模板中
以后子模板直接继承就可以使用了。
这样可以重复的利用代码,并且以后修改起来也比较方便
使用extends
语句,来指明继承的父模板。父模板的路径,也是相对于templates
文件夹下的绝对路径
xxxxxxxxxx
{% extends "base.html" %}
一般在父模版中,定义一些公共的代码。子模板可能要根据具体的需求实现不同的代码。
这时候父模版就应该有能力提供一个接口,让子模板来实现。从而实现具体业务需求的功能。
父模板
xxxxxxxxxx
{% block block的名字 %}
{% endblock %}
子模板
xxxxxxxxxx
{% block block的名字 %}
子模板中的代码
{% endblock %}
调用父模版代码block中的代码
默认情况下,子模板如果实现了父模版定义的block。那么子模板block中的代码就会覆盖掉父模板中的代码。
如果想要在子模板中仍然保持父模板中的代码,那么可以使用{{ super( ) }}
来实现
父模板
xxxxxxxxxx
{% block block_body %}
<p style="background-color: blue">我是 父模版block_body处的内容</p>
{% endblock %}
子模板
xxxxxxxxxx
{% block block_body%}
{{ super() }}
<p style="background-color: green">我是 子模版block_body处的内容</p>
{% endblock %}
调用另外一个block中的代码
如果想要在另外一个模版中使用其他模版中的代码。那么可以通过{{ self.其他block名字() }}
就可以了
xxxxxxxxxx
{% block title %}
sxt首页
{% endblock %}
{% block block_body%}
{{ self.title() }}
<p style="background-color: green">我是子模版block_body处的内容</p>
{% endblock %}
注意
1. 子模板中的代码,第一行,应该是
extends
2. 子模板中,如果要实现自己的代码,应该放到block中。如果放到其他地方,那么就不会被渲染
实时学习反馈
1. 以下对Jinja中对模板继承说法不正确的是?
A 使用模板可以简化代码
B 使用模板可以提高运行效率
C 使用block关键字重写父类内容
D 使用extends关键字实现继承
2. 以下对Jinja中对模板继承说法不正确的是?
A 可以通过super调用父模板内容
B block块 需要起名映射父模板
C block块需要结束关键字endblock配对
D block块 可以起同名
答案
1=>B 2=>D