Flask中jinja2的继承实现方法及实例


Posted in Python onMarch 03, 2021

在继承的使用上,我们最早接触的是父类和子类的继承。不过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>

到此这篇关于Flask中jinja2的继承实现方法及实例的文章就介绍到这了,更多相关Flask中jinja2的继承如何实现内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python实现的数据结构与算法之快速排序详解
Apr 22 Python
Python实现PS滤镜特效之扇形变换效果示例
Jan 26 Python
详解python中asyncio模块
Mar 03 Python
对python中for、if、while的区别与比较方法
Jun 25 Python
python画图把时间作为横坐标的方法
Jul 07 Python
PyCharm2018 安装及破解方法实现步骤
Sep 09 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
Jul 03 Python
pytorch加载自己的图像数据集实例
Jul 07 Python
Python下载的11种姿势(小结)
Nov 18 Python
python爬虫中采集中遇到的问题整理
Nov 27 Python
教你怎么用Python监控愉客行车程
Apr 29 Python
python实现局部图像放大
Nov 17 Python
基于PyTorch中view的用法说明
Mar 03 #Python
Python 实现劳拉游戏的实例代码(四连环、重力四子棋)
Mar 03 #Python
对pytorch中x = x.view(x.size(0), -1) 的理解说明
Mar 03 #Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
Mar 03 #Python
Pytorch 中的optimizer使用说明
Mar 03 #Python
解决pytorch 的state_dict()拷贝问题
Mar 03 #Python
解决pytorch 保存模型遇到的问题
Mar 03 #Python
You might like
dedecms防止FCK乱格式化你的代码的修改方法
2007/03/17 PHP
php文本转图片自动换行的方法
2013/03/13 PHP
laravel 解决路由除了根目录其他都404的问题
2019/10/18 PHP
jquery 清空file域示例(兼容个浏览器)
2013/10/11 Javascript
js对象继承之原型链继承实例
2015/01/10 Javascript
jQuery实现仿微软首页感应鼠标变化滑动窗口效果
2015/10/08 Javascript
BootStrap selectpicker
2016/06/20 Javascript
jquery实现ajax加载超时提示的方法
2016/07/23 Javascript
ES6中的数组扩展方法
2016/08/26 Javascript
JS中parseInt()和map()用法分析
2016/12/16 Javascript
javascript数据类型详解
2017/02/07 Javascript
JavaScript函数柯里化原理与用法分析
2017/03/31 Javascript
Three.js如何实现雾化效果示例代码
2017/09/27 Javascript
解决Mac node版本升级失败的问题
2018/05/16 Javascript
解决VUEX的mapState/...mapState等取值问题
2020/07/24 Javascript
Python中属性和描述符的正确使用
2016/08/23 Python
Python实现字符串格式化的方法小结
2017/02/20 Python
Python中Selenium模拟JQuery滑动解锁实例
2017/07/26 Python
详解tensorflow载入数据的三种方式
2018/04/24 Python
在CMD命令行中运行python脚本的方法
2018/05/12 Python
Ubuntu中配置TensorFlow使用环境的方法
2020/04/21 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2020/05/08 Python
Python的scikit-image模块实例讲解
2020/12/30 Python
美国钻石商店:Zales
2016/11/20 全球购物
海信商城:海信电视、科龙空调、容声冰箱官方专卖
2017/02/07 全球购物
施华洛世奇英国官网:SWAROVSKI英国
2017/03/13 全球购物
英国乡村时尚和宠物用品专家:Pet & Country
2018/07/02 全球购物
英国当代时尚和街头服饰店:18montrose
2018/12/15 全球购物
瑞士图书网站:Weltbild.ch
2019/09/17 全球购物
金融专业应届生求职信
2013/11/02 职场文书
车间组长岗位职责
2013/12/20 职场文书
公务员更新知识培训实施方案
2014/03/31 职场文书
2014年村支部书记四风对照检查材料思想汇报
2014/10/02 职场文书
2014年自愿离婚协议书
2014/10/10 职场文书
导游词之徐州云龙湖
2019/11/19 职场文书
nginx反向代理配置去除前缀案例教程
2021/07/26 Servers