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 学习笔记
Dec 27 Python
推荐10款最受Python开发者欢迎的Python IDE
Sep 16 Python
Python3 安装PyQt5及exe打包图文教程
Jan 08 Python
django与小程序实现登录验证功能的示例代码
Feb 19 Python
pytorch常见的Tensor类型详解
Jan 15 Python
Python socket服务常用操作代码实例
Jun 22 Python
Python错误的处理方法
Jun 23 Python
Python3爬虫中Splash的知识总结
Jul 10 Python
解决Python安装cryptography报错问题
Sep 03 Python
利用python查看数组中的所有元素是否相同
Jan 08 Python
Pycharm制作搞怪弹窗的实现代码
Feb 19 Python
pandas统计重复值次数的方法实现
Feb 20 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
3
2006/10/09 PHP
台湾中原大学php教程孙仲岳主讲
2008/01/07 PHP
PHP 错误之引号中使用变量
2009/05/04 PHP
php小技巧之过滤ascii控制字符
2014/05/14 PHP
摘自织梦CMS中的图片处理类
2015/08/08 PHP
向大师们学习Javascript(视频与PPT)
2009/12/27 Javascript
基于jquery的获取mouse坐标插件的实现代码
2010/04/01 Javascript
JavaScript实现统计文本框Textarea字数增强用户体验
2012/12/21 Javascript
jquery获取tagName再进行判断
2014/05/29 Javascript
javascript实现图片自动和可控的轮播切换特效
2015/04/13 Javascript
JavaScript的instanceof运算符学习教程
2016/06/08 Javascript
jQuery延迟执行的实现方法
2016/12/21 Javascript
轻松学习Javascript闭包
2017/03/01 Javascript
解决v-for中使用v-if或者v-bind:class失效的问题
2018/09/25 Javascript
微信小程序实现随机验证码功能
2018/12/20 Javascript
vue实现路由懒加载及组件懒加载的方式
2019/06/11 Javascript
Node.js学习教程之Module模块
2019/09/03 Javascript
Antd下拉选择,自动匹配功能的实现
2020/10/24 Javascript
django使用图片延时加载引起后台404错误
2017/04/18 Python
Python3实现简单可学习的手写体识别(实例讲解)
2017/10/21 Python
wxPython的安装与使用教程
2018/08/31 Python
用Pycharm实现鼠标滚轮控制字体大小的方法
2019/01/15 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
2019/03/14 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
2020/04/17 Python
Python实现给PDF添加水印的方法
2021/01/25 Python
推荐一些比较有用的css3新属性
2014/11/11 HTML / CSS
美国在线印刷公司:PsPrint
2017/10/12 全球购物
阿拉伯时尚购物网站:Nisnass
2021/02/07 全球购物
英国专业美容产品在线:Mylee(从指甲到脱毛)
2020/07/06 全球购物
外贸业务员岗位职责
2013/11/24 职场文书
教师自荐信
2013/12/10 职场文书
市场开发计划书
2014/05/07 职场文书
就职演讲稿范文
2014/05/19 职场文书
2016自主招生校长推荐信范文
2015/03/23 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书