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 相关文章推荐
python3.0 字典key排序
Dec 24 Python
详解Python的Django框架中的模版相关知识
Jul 15 Python
实例解析Python中的__new__特殊方法
Jun 02 Python
Python命令启动Web服务器实例详解
Feb 23 Python
python MNIST手写识别数据调用API的方法
Aug 08 Python
Python面向对象之继承和组合用法实例分析
Aug 27 Python
对python产生随机的二维数组实例详解
Dec 13 Python
python基础 range的用法解析
Aug 23 Python
Django生成PDF文档显示网页上以及PDF中文显示乱码的解决方法
Dec 17 Python
详解Python 函数参数的拆解
Sep 02 Python
python smtplib发送多个email联系人的实现
Oct 09 Python
python 实现德洛内三角剖分的操作
Apr 22 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的GD库imagettftext函数解决中文乱码问题
2015/01/24 PHP
php格式化金额函数分享
2015/02/02 PHP
php微信开发之自定义菜单完整流程
2016/10/08 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
小程序微信支付功能配置方法示例详解【基于thinkPHP】
2019/05/05 PHP
jquery显示隐藏元素的实现代码
2016/05/19 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
[Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能实例代码
2016/12/20 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
jQuery无刷新上传之uploadify简单代码
2017/01/17 Javascript
jQuery基本选择器和层次选择器学习使用
2017/02/27 Javascript
WebSocket实现简单客服聊天系统
2017/05/12 Javascript
jq.ajax+php+mysql实现关键字模糊查询(示例讲解)
2018/01/02 Javascript
在vue项目中使用Nprogress.js进度条的方法
2018/01/31 Javascript
vue 自定义 select内置组件
2018/04/10 Javascript
vue中如何实现后台管理系统的权限控制的方法步骤
2019/09/05 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
2020/06/22 Javascript
python基础教程之基本内置数据类型介绍
2014/02/20 Python
python 字符串只保留汉字的方法
2018/11/16 Python
python的继承知识点总结
2018/12/10 Python
pandas dataframe添加表格框线输出的方法
2019/02/08 Python
python动态文本进度条的实例代码
2020/01/22 Python
Python如何实现小程序 无限求和平均
2020/02/18 Python
Python无头爬虫下载文件的实现
2020/04/02 Python
浅析Python 多行匹配模式
2020/07/24 Python
Python爬虫代理池搭建的方法步骤
2020/09/28 Python
CSS3轻松实现清新 Loading 效果的简单实例
2016/06/06 HTML / CSS
Sephora丝芙兰澳洲官方网站:国际知名化妆品购物
2016/10/27 全球购物
jQuery treeview树形结构应用
2021/03/24 jQuery
社区维稳工作方案
2014/06/06 职场文书
群众路线教育实践活动方案
2014/10/31 职场文书
搞笑婚前保证书
2015/02/28 职场文书
让子弹飞观后感
2015/06/11 职场文书
五年级作文之学校的四季
2019/12/05 职场文书
【海涛教你打DOTA】剑圣第一人称视角解说
2022/04/01 DOTA
未发现nvidia显卡怎么办?Win11系统中未检测到nvidia显卡解决教程
2022/04/08 数码科技