Flask框架模板继承实现方法分析
2019-07-31 11:16
921 查看
本文实例讲述了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 flask框架实现传数据到js的方法分析
- .NET重构(四):窗体继承+模板方法,完美实现组合查询
- JavaScript实现多重继承的方法分析
- AngularJS框架的ng-app指令与自动加载实现方法分析
- Laravel框架实现redis集群的方法分析
- 获取django框架orm query执行的sql语句实现方法分析
- thinkPHP5框架自定义验证器实现方法分析
- dedecsm模板中首页如何实现分页的三种方法比较分析
- ThinkPHP框架使用redirect实现页面重定向的方法实例分析
- c#实例化继承类,必须对被继承类的程序集做引用 .net core Redis分布式缓存客户端实现逻辑分析及示例demo 数据库笔记之索引和事务 centos 7下安装python 3.6笔记 你大波哥~ C#开源框架(转载) JSON C# Class Generator ---由json字符串生成C#实体类的工具
- thinkPHP3.0框架实现模板保存到数据库的方法
- JavaScript面向对象继承原理与实现方法分析
- thinkphp5.1框架模板布局与模板继承用法分析
- Flask框架响应、调度方法和蓝图操作实例分析
- 设计模式之模板方法模式 c++实现和详细分析
- .NET重构(四):窗体继承+模板方法,完美实现组合查询
- Linux kernel 分析之十七:设计模式-用C来实现继承和模板
- 多态理解,方法重写分析,类继承与接口实现中,方法重写的实现机制的区别
- Spring整合JDBC模板方法设计模式之基于继承的实现
- 三十二、python学习之Flask框架(四)模板:jinja2模板、过滤器、模板复用(继承、宏、包含)、了解CSRF跨站请求攻击