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 相关文章推荐
Django 导出 Excel 代码的实例详解
Aug 11 Python
总结python中pass的作用
Feb 27 Python
python把转列表为集合的方法
Jun 28 Python
使用TensorFlow实现简单线性回归模型
Jul 19 Python
python+selenium select下拉选择框定位处理方法
Aug 24 Python
浅谈pycharm使用及设置方法
Sep 09 Python
Python 依赖库太多了该如何管理
Nov 08 Python
Python算法中的时间复杂度问题
Nov 19 Python
爬虫代理池Python3WebSpider源代码测试过程解析
Dec 20 Python
Python unittest装饰器实现原理及代码
Sep 08 Python
python函数超时自动退出的实操方法
Dec 28 Python
python基础之文件操作
Oct 24 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 中的面向对象编程:通向大型 PHP 工程的办法
2006/12/03 PHP
php操作sqlserver关于时间日期读取的小小见解
2009/11/29 PHP
jQuery 入门讲解1
2009/04/15 Javascript
js中的window.open返回object的错误的解决方法
2009/08/15 Javascript
将jQuery应用于login页面的问题及解决
2009/10/17 Javascript
Javascript 网页黑白效果实现代码(兼容IE/FF等)
2010/04/23 Javascript
Javascript执行效率全面总结
2013/11/04 Javascript
浅谈js的setInterval事件
2014/12/05 Javascript
jQuery解析与处理服务器端返回xml格式数据的方法详解
2016/07/04 Javascript
JavaScript实战(原生range和自定义特效)简单实例
2016/08/21 Javascript
jquery uploadify如何取消已上传成功文件
2017/02/08 Javascript
vue 国际化 vue-i18n 双语言 语言包
2018/06/07 Javascript
基于React+Redux的SSR实现方法
2018/07/03 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
2019/10/23 Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
2019/12/22 Javascript
学习 Vue.js 遇到的那些坑
2021/02/02 Vue.js
python实现目录树生成示例
2014/03/28 Python
python读取html中指定元素生成excle文件示例
2014/04/03 Python
python实现的守护进程(Daemon)用法实例
2015/06/02 Python
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
python判断文件夹内是否存在指定后缀文件的实例
2019/06/10 Python
Python Json数据文件操作原理解析
2020/05/09 Python
python 利用toapi库自动生成api
2020/10/19 Python
matplotlib 范围选区(SpanSelector)的使用
2021/02/24 Python
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
瑞典的玛丽小姐:Miss Mary of Sweden
2019/02/13 全球购物
软件缺陷的分类都有哪些
2014/08/22 面试题
优良学风班申请材料
2014/02/13 职场文书
《孔子拜师》教学反思
2014/02/24 职场文书
优秀会计求职信
2014/07/04 职场文书
教师岗位职责范本
2015/04/02 职场文书
我爱我班主题班会
2015/08/13 职场文书
2016大学生诚信考试承诺书
2016/03/25 职场文书
Python实现文本文件拆分写入到多个文本文件的方法
2021/04/18 Python
vue实现登陆页面开发实践
2022/05/30 Vue.js