Flask中jinja2的继承实现方法及实例
程序员文章站
2022-04-23 10:06:08
在继承的使用上,我们最早接触的是父类和子类的继承。不过flask框架中的继承要简单一些,只要有一个原文件,便可以对其进行继承和修改的操作了。在修改的内容方面,可以通过关键字来进行实现。下面我们就fla...
在继承的使用上,我们最早接触的是父类和子类的继承。不过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中类的定义、继承及使用对象实例详解
-
Javascript中类式继承和原型式继承的实现方法和区别之处
-
php做下载文件的实现代码及文件名中乱码解决方法
-
Linux在应用层读写寄存器的方法及实现实例
-
在IOS中为什么使用多线程及多线程实现的三种方法
-
Python中类的声明,使用,属性,实例属性,计算属性及继承,重写
-
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
-
eclipse中的出现在打包一次后,后面新建的项目都出错了,出现support_v7下面出现红线及解决方法及为什么eclipse中项目继承ActionBarActivity解决方法一样
-
PHP接口多继承及tarits实现多继承效果的方法
-
模拟jQuery中的ready方法及实现按需加载css,js实例代码