Flask框架模板继承实现方法分析


Posted in Python onJuly 31, 2019

本文实例讲述了Flask框架模板继承实现方法。分享给大家供大家参考,具体如下:

在模板中,可能会遇到以下情况:

  • 多个模板具有完全相同的顶部和底部内容
  • 多个模板中具有相同的模板代码内容,但是内容中部分值不一样
  • 多个模板中具有完全相同的 html 代码块内容

像遇到这种情况,可以使用 JinJa2 模板中的 继承 来进行实现

模板继承是为了重用模板中的公共内容。一般Web开发中,继承主要使用在网站的顶部菜单、底部。这些内容可以定义在父模板中,子模板直接继承,而不需要重复书写。

  • 标签定义的内容
{% block top %} {% endblock %}
  • 相当于在父模板中挖个坑,当子模板继承父模板时,可以进行填充。
  • 子模板使用 extends 指令声明这个模板继承自哪个模板
  • 父模板中定义的块在子模板中被重新定义,在子模板中调用父模板的内容可以使用super()

父模板代码:

base.html

{% block top %}
 顶部菜单
{% endblock top %}
{% block content %}
{% endblock content %}
{% block bottom %}
 底部
{% endblock bottom %}

子模板代码:

  • extends指令声明这个模板继承自哪
{% extends 'base.html' %}
{% block content %}
 需要填充的内容
{% endblock content %}

模板继承使用时注意点:

  • 不支持多继承
  • 为了便于阅读,在子模板中使用extends时,尽量写在模板的第一行。
  • 不能在一个模板文件中定义多个相同名字的block标签。
  • 当在页面中使用多个block标签时,建议给结束标签起个名字,当多个block嵌套时,阅读性更好。

希望本文所述对大家基于flask框架的Python程序设计有所帮助。

Python 相关文章推荐
Python实现抓取页面上链接的简单爬虫分享
Jan 21 Python
Python虚拟环境Virtualenv使用教程
May 18 Python
python中requests小技巧
May 10 Python
python3 pillow生成简单验证码图片的示例
Sep 19 Python
python与sqlite3实现解密chrome cookie实例代码
Jan 20 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
Apr 27 Python
Python设计模式之模板方法模式实例详解
Jan 17 Python
Python3简单爬虫抓取网页图片代码实例
Aug 26 Python
python针对mysql数据库的连接、查询、更新、删除操作示例
Sep 11 Python
Python 静态方法和类方法实例分析
Nov 21 Python
PyTorch实现ResNet50、ResNet101和ResNet152示例
Jan 14 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
Feb 20 Python
Flask框架模板渲染操作简单示例
Jul 31 #Python
opencv导入头文件时报错#include的解决方法
Jul 31 #Python
python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码
Jul 31 #Python
Django上使用数据可视化利器Bokeh解析
Jul 31 #Python
Flask框架单例模式实现方法详解
Jul 31 #Python
pycharm配置当鼠标悬停时快速提示方法参数
Jul 31 #Python
详细介绍Python进度条tqdm的使用
Jul 31 #Python
You might like
PHP使用PHPexcel导入导出数据的方法
2015/11/14 PHP
thinkphp 字母函数详解T/I/N/D/M/A/R/U
2017/04/03 PHP
Laravel框架路由管理简单示例
2019/05/07 PHP
Thinkphp 框架扩展之应用模式实现方法分析
2020/04/27 PHP
PHP array_reverse() 函数原理及实例解析
2020/07/14 PHP
img标签中onerror用法
2009/08/13 Javascript
使用JavaScript库还是自己写代码?
2010/01/28 Javascript
详解jQuery插件开发中的extend方法
2013/11/19 Javascript
javascript实现数字验证码的简单实例
2014/02/10 Javascript
javascript函数重载解决方案分享
2014/02/19 Javascript
JS中类或对象的定义说明
2014/03/10 Javascript
jQuery如何使用自动触发事件trigger
2015/11/29 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
JavaScript自学笔记(必看篇)
2016/06/23 Javascript
原生JS实现幻灯片
2017/02/22 Javascript
详解如何在NodeJS项目中优雅的使用ES6
2017/04/22 NodeJs
jQuery手风琴的简单制作
2017/05/12 jQuery
为什么要使用Vuex的介绍
2019/01/19 Javascript
解决vue 单文件组件中样式加载问题
2019/04/24 Javascript
[38:30]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场2
2014/05/24 DOTA
python求列表交集的方法汇总
2014/11/10 Python
Python爬虫框架Scrapy实战之批量抓取招聘信息
2015/08/07 Python
python实现八大排序算法(1)
2017/09/14 Python
python绘制条形图方法代码详解
2017/12/19 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
2019/06/19 Python
python opencv minAreaRect 生成最小外接矩形的方法
2019/07/01 Python
django数据关系一对多、多对多模型、自关联的建立
2019/07/24 Python
基于Python实现拆分和合并GIF动态图
2019/10/22 Python
Python统计学一数据的概括性度量详解
2020/03/03 Python
Python爬虫进阶之爬取某视频并下载的实现
2020/12/08 Python
详解css3 flex弹性盒自动铺满写法
2020/09/17 HTML / CSS
HTML5页面音视频在微信和app下自动播放的实现方法
2016/10/20 HTML / CSS
校园摄影活动策划方案
2014/02/05 职场文书
中国梦演讲稿范文
2014/08/28 职场文书
一般党员对照检查材料
2014/09/24 职场文书
Windows11 Insider Preview Build 25206今日发布 更新内容汇总
2022/09/23 数码科技