Flask中jinja2的继承实现方法及实例
作者:小妮浅浅 时间:2022-09-24 12:31:09
在继承的使用上,我们最早接触的是父类和子类的继承。不过Flask框架中的继承要简单一些,只要有一个原文件,便可以对其进行继承和修改的操作了。在修改的内容方面,可以通过关键字来进行实现。下面我们就Flask中jinja2的继承的实现先进行理论的介绍,然后带来实例供大家练习。
1、说明
Jinja2中最强大的部分是模板继承。通过模板继承,我们可以创建一个基本(框架)文件,其他文件可以从中继承,然后再根据需要对其进行修改。
在jinja2的框架文件中,使用block关键字表示它包含的内容可以被修改。
2、实例
<!DOCTYPE html>
<html>
<head>
{% block head %}
<link rel="stylesheet" href="style.css" rel="external nofollow" />
<title>{% block title %}{% endblock %} - My Webpage</title>
{% endblock %}
</head>
<body>
<div id="content">{% block content %}{% endblock %}</div>
<div id="footer">
{% block footer %}
<script>This is javascript code </script>
{% endblock %}
</div>
</body>
</html>
这里定义了四处 block,即:head,title,content,footer。那怎么进行继承和变量替换呢?注意看下面的文件
{% extend "base.html" %} # 继承base.html文件
{% block title %} Dachenzi {% endblock %} # 定制title部分的内容
{% block head %}
{
{ super() }} # 用于获取原有的信息
<style type='text/css'>
.important { color: #FFFFFF }
</style>
{% endblock %}
# 其他不修改的原封不同的继承
实例扩展:
jinja2模板继承
父亲:
<!DOCTYPE html>
<html>
<head>
<title>模板继承</title>
</head>
<body>
<span>这是基模板</span>
<div id="content">{% block content %}{% endblock %}</div>
</body>
</html>
用{% block content %}{% endblock %}包含jinja2的字模板块;
子:
<!DOCTYPE html>
<html>
<head>
<title>模板继承</title>
</head>
<body>
{% extend "jinja2_模板继承.html"%}
{% block content %}
<p class="importtant">我在子模板</p>
</body>
</html>
{% extends "jinja2_模板继承.html"%}标签是这里的关键,告诉模板引擎这个模板继承自另外一个模板。该标签必须是子模板的第一个标签,解释器会自动将父亲的内容复制到子模板中!
结果应该是这样:
<!DOCTYPE html>
<html>
<head>
<title>模板继承</title>
</head>
<body>
<span>这是基模板</span>
<div id="content">
<p class="importtant">我在子模板</p>
</div>
</body>
</html>
来源:https://www.py.cn/kuangjia/flask/27210.html
标签:Flask,jinja2,继承
0
投稿
猜你喜欢
Python跳出多重循环的方法示例
2022-12-18 16:28:26
Python实现GIF动图以及视频卡通化详解
2022-06-28 03:27:34
python本地文件服务器实例教程
2022-07-31 16:38:17
golang中package is not in GOROOT报错的真正解决办法
2024-04-28 10:45:29
NumPy.npy与pandas DataFrame的实例讲解
2022-11-18 07:39:00
DataFrame 数据合并实现(merge,join,concat)
2022-03-28 04:24:02
Python3.4实现远程控制电脑开关机
2022-09-17 06:19:59
区别Javascript中的Null与Undefined
2007-12-13 20:24:00
oracle sys_connect_by_path 函数 结果集连接
2009-07-12 18:48:00
Hugo Config模块构建实现源码剖析
2024-05-09 09:48:03
关于Django框架的关系模型序列化和一对多关系中的序列化解析
2023-01-15 00:52:53
sqlserver 不重复的随机数
2024-01-14 00:13:59
Python3 Tkinkter + SQLite实现登录和注册界面
2023-10-01 14:56:15
Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解
2024-04-08 10:55:44
Python 结巴分词实现关键词抽取分析
2023-08-13 08:20:06
用python写asp详细讲解
2022-02-26 13:21:36
javascript结合ajax读取txt文件内容
2024-04-30 10:14:58
详解Python的Django框架中的templates设置
2021-12-15 15:16:06
Django显示可视化图表的实践
2023-04-13 02:42:38
Python识别处理照片中的条形码
2022-12-10 17:30:42