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遍历类中所有成员的方法
Mar 18 Python
详解Swift中属性的声明与作用
Jun 30 Python
python机器学习案例教程——K最近邻算法的实现
Dec 28 Python
python MysqlDb模块安装及其使用详解
Feb 23 Python
selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox)
Nov 29 Python
Python3字符串encode与decode的讲解
Apr 02 Python
Python 一键制作微信好友图片墙的方法
May 16 Python
python交易记录链的实现过程详解
Jul 03 Python
详解python播放音频的三种方法
Sep 23 Python
pandas to_excel 添加颜色操作
Jul 14 Python
Python tkinter实现日期选择器
Feb 22 Python
用Python的绘图库(matplotlib)绘制小波能量谱
Apr 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
php4的session功能评述(三)
2006/10/09 PHP
ThinkPHP入口文件设置及相关注意事项分析
2014/12/05 PHP
php使用Cookie实现和用户会话的方法
2015/01/21 PHP
护卫神php套件 php版本升级方法(php5.5.24)
2015/05/10 PHP
php微信公众号开发之秒杀
2018/10/20 PHP
javascript中的throttle和debounce浅析
2014/06/06 Javascript
js使用for循环及if语句判断多个一样的name
2014/09/09 Javascript
JavaScript声明变量时为什么要加var关键字
2014/09/29 Javascript
js图片轮播特效代码分享
2015/09/07 Javascript
js将滚动条滚动到指定位置的简单实现方法
2016/06/25 Javascript
Bootstrap 模态框实例插件案例分析
2016/12/28 Javascript
js/jq仿window文件夹移动/剪切/复制等操作代码
2017/03/08 Javascript
前端框架学习总结之Angular、React与Vue的比较详解
2017/03/14 Javascript
Bootstrap常用组件学习(整理)
2017/03/24 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
2017/08/12 Javascript
jquery操作ul的一些操作笔记整理(干货)
2017/08/31 jQuery
动态创建Angular组件实现popup弹窗功能
2017/09/15 Javascript
JS常见面试试题总结【去重、遍历、闭包、继承等】
2019/08/27 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
openlayers 3实现车辆轨迹回放
2020/09/24 Javascript
python实现bitmap数据结构详解
2014/02/17 Python
python实现简易内存监控
2018/06/21 Python
python中字符串数组逆序排列方法总结
2019/06/23 Python
使用Python实现正态分布、正态分布采样
2019/11/20 Python
Python创建数字列表的示例
2019/11/28 Python
利用python中集合的唯一性实现去重
2020/02/11 Python
Python标准库json模块和pickle模块使用详解
2020/03/10 Python
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
幼儿园教师工作制度
2014/01/22 职场文书
函授本科自我鉴定
2014/02/04 职场文书
拓展策划方案
2014/06/03 职场文书
篮球比赛口号
2014/06/10 职场文书
热血教师观后感
2015/06/10 职场文书
2015初中政教处工作总结
2015/07/21 职场文书
求职信:求职应该注意的问题
2019/04/24 职场文书
Go并发4种方法简明讲解
2022/04/06 Golang