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完全新手教程
Feb 08 Python
python 判断是否为正小数和正整数的实例
Jul 23 Python
Python网络编程详解
Oct 31 Python
Numpy掩码式数组详解
Apr 17 Python
python一行sql太长折成多行并且有多个参数的方法
Jul 19 Python
Python远程视频监控程序的实例代码
May 05 Python
python解析yaml文件过程详解
Aug 30 Python
Python自动发送和收取邮件的方法
Aug 12 Python
python判断字符串以什么结尾的实例方法
Sep 18 Python
OpenCV+Python3.5 简易手势识别的实现
Dec 21 Python
只用50行Python代码爬取网络美女高清图片
Jun 02 Python
Python一些基本的图像操作和处理总结
Jun 23 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
php操作MongoDB类实例
2015/06/17 PHP
PHP版本常用的排序算法汇总
2015/12/20 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
2016/03/31 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
2018/04/26 PHP
JQuery index()方法使用代码
2010/06/02 Javascript
JavaScript的单例模式 (singleton in Javascript)
2010/06/11 Javascript
javascript重复绑定事件造成的后果说明
2013/03/02 Javascript
JSONP跨域的原理解析及其实现介绍
2014/03/22 Javascript
jquery检测input checked 控件是否被选中的方法
2014/03/26 Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
2014/07/01 Javascript
AngularJS基础 ng-href 指令用法
2016/08/01 Javascript
基于Vue.js实现简单搜索框
2020/03/26 Javascript
jQuery基于正则表达式的表单验证功能示例
2017/01/21 Javascript
微信小程序之滚动视图容器的实现方法
2017/09/26 Javascript
js 数组详细操作方法及解析合集
2018/06/01 Javascript
Vue 配合eiement动态路由,权限验证的方法
2018/09/26 Javascript
jQuery实现图片下载代码
2019/07/18 jQuery
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
2020/12/30 Vue.js
python paramiko实现ssh远程访问的方法
2013/12/03 Python
详解Python中heapq模块的用法
2016/06/28 Python
python如何在终端里面显示一张图片
2016/08/17 Python
Python手绘可视化工具cutecharts使用实例
2019/12/05 Python
css3 中实现炫酷的loading效果
2019/04/26 HTML / CSS
Mankind美国/加拿大:英国领先的男士美容护发用品公司
2018/12/05 全球购物
美国在线宠物商店:Chewy
2019/01/12 全球购物
Charles&Keith美国官方网站:新加坡快时尚鞋类和配饰零售商
2019/11/27 全球购物
意大利值得信赖的在线超级药房:PillolaStore
2020/02/05 全球购物
机关财务管理制度
2014/01/17 职场文书
幼儿园家长评语
2014/02/10 职场文书
后备干部考察材料
2014/02/12 职场文书
能源工程专业应届生求职信
2014/03/01 职场文书
政府采购方案
2014/06/12 职场文书
2014年数学教研组工作总结
2014/12/06 职场文书
八年级作文之友情
2019/11/25 职场文书
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL