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实现向ppt文件里插入新幻灯片页面的方法
Apr 28 Python
Python实现控制台进度条功能
Jan 04 Python
Python内建数据结构详解
Feb 03 Python
Python中的条件判断语句与循环语句用法小结
Mar 21 Python
Python 提取dict转换为xml/json/table并输出的实现代码
Aug 28 Python
批量获取及验证HTTP代理的Python脚本
Apr 23 Python
Python多线程threading和multiprocessing模块实例解析
Jan 29 Python
深入理解Python爬虫代理池服务
Feb 28 Python
Django migrations 默认目录修改的方法教程
Sep 28 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
Mar 30 Python
Python批量查询关键词微信指数实例方法
Jun 27 Python
Python3+Django get/post请求实现教程详解
Feb 16 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
利用浏览器的Javascript控制台调试PHP程序
2014/01/08 PHP
PHP加密解密类实例分析
2015/04/20 PHP
THINKPHP在添加数据的时候获取主键id的值方法
2017/04/03 PHP
PHP Pipeline 实现中间件的示例代码
2020/04/26 PHP
CSS3画一个阴阳八卦图
2021/03/09 HTML / CSS
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
JavaScript中的this实例分析
2011/04/28 Javascript
javascript如何动态加载表格与动态添加表格行
2013/11/27 Javascript
浅谈Unicode与JavaScript的发展史
2015/01/19 Javascript
Underscore.js常用方法总结
2015/02/28 Javascript
深入浅出理解javaScript原型链
2015/05/09 Javascript
基于Jquery实现万圣节快乐特效
2015/11/01 Javascript
JavaScript兼容性总结之获取非行间样式案例
2016/08/07 Javascript
基于复选框demo(分享)
2017/09/27 Javascript
使用Electron构建React+Webpack桌面应用的方法
2017/12/15 Javascript
基于js 各种排序方法和sort方法的区别(详解)
2018/01/03 Javascript
浅谈Webpack 持久化缓存实践
2018/03/22 Javascript
微信小程序实现通过双向滑动缩放图片大小的方法
2018/12/30 Javascript
深入学习JavaScript 高阶函数
2019/06/11 Javascript
vue中使用极验验证码的方法(附demo)
2019/12/04 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
2020/08/06 Javascript
[52:09]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第二场
2014/05/26 DOTA
[09:37]2018DOTA2国际邀请赛寻真——不懈追梦的Team Serenity
2018/08/13 DOTA
python 计算两个日期相差多少个月实例代码
2017/05/24 Python
python监控linux内存并写入mongodb(推荐)
2017/09/11 Python
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
2019/04/01 Python
python 实现弹球游戏的示例代码
2020/11/17 Python
python uuid生成唯一id或str的最简单案例
2021/01/13 Python
请解释在new与override的区别
2012/10/29 面试题
Python如何实现单例模式
2016/06/03 面试题
大学生先进事迹材料
2014/02/16 职场文书
法人委托书
2014/07/31 职场文书
基层干部个人对照检查及整改措施
2014/10/28 职场文书
党的群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
golang中实现给gif、png、jpeg图片添加文字水印
2021/04/26 Golang
vue项目proxyTable配置和部署服务器
2022/04/14 Vue.js