Jinja模板继承实现Html页面划分
2016-08-05 12:53
531 查看
一个系统网站往往需要统一的结构,这样看起来比较“整洁”。
比如,一个页面中都有标题、左侧菜单、右侧内容显示、底部等四部分。
如果在每一个网页中都进行这些部分的编写,那么整个网站将会有很多冗余部分,而且,对于网页程序的编写也不美观。
这时候可以采用模板继承,即将相同的部分提取出来,形成一个base.html,具有这些相同部分的网页通过继承base.html来具有对应的模块。
这里采用的Jinja2中的模板继承机制来实现——将页面划分为标题栏、左侧菜单栏和右侧主页面。
base.html
实现页面图:
![](https://img-blog.csdn.net/20160805125107937?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
其中:
<div id="content" style="background: #fff;width: 960px;margin:0 auto;">
<div style="width: 100%;height: 100px;background: #f00;position: relative;">
{% block content%}
{% endblock %}
</div>
<div style="width: 100%;height: 500px;background: #00f;position: relative;">
</div>
</div>
将页面划分为上下两部分;
<div style="width: 100%;height: 500px;background: #00f;position: relative;">
<div style="background: #ccc;width: 20%;float: left;height: 500px;">
{% block left %}
{% endblock %}
</div>
<div style="background: #fff;width: 80%;float: left;height: 500px;">
{% block right %}
{% endblock %}
</div>
</div>
将页面划分为左右两部分。
比如,一个页面中都有标题、左侧菜单、右侧内容显示、底部等四部分。
如果在每一个网页中都进行这些部分的编写,那么整个网站将会有很多冗余部分,而且,对于网页程序的编写也不美观。
这时候可以采用模板继承,即将相同的部分提取出来,形成一个base.html,具有这些相同部分的网页通过继承base.html来具有对应的模块。
这里采用的Jinja2中的模板继承机制来实现——将页面划分为标题栏、左侧菜单栏和右侧主页面。
base.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html lang="en"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> {% block head %} <link rel="stylesheet" href="{{url_for('static',filename='css/style.css')}}" /> <title>{% block title %}{% endblock %} - My Webpage</title> {% endblock %} </head> <body> <div id="content" style="background: #fff;width: 960px;margin:0 auto;"> <div style="width: 100%;height: 100px;background: #f00;position: relative;"> {% block content%} {% endblock %} </div> <div style="width: 100%;height: 500px;background: #00f;position: relative;"> <div style="background: #ccc;width: 20%;float: left;height: 500px;"> {% block left %} {% endblock %} </div> <div style="background: #fff;width: 80%;float: left;height: 500px;"> {% block right %} {% endblock %} </div> </div> </div> <div id="footer"> <center> {% block footer %} © Copyright 2016 by <a href="http://www.baidu.com/">you</a>. {% endblock %} </center> </div> </body>继承base的html
{% extends "base.html" %} {% block title %}Index{% endblock %} {% block head %} {{ super() }} <style type="text/css"> .important { color: #336699; } </style> {% endblock %} {% block content %} <h1>Index</h1> <p class="important"> top-position </p> {% endblock content%} {% block left %} menu-position {% endblock left%} {% block right %} main-position {% endblock right%}
实现页面图:
其中:
<div id="content" style="background: #fff;width: 960px;margin:0 auto;">
<div style="width: 100%;height: 100px;background: #f00;position: relative;">
{% block content%}
{% endblock %}
</div>
<div style="width: 100%;height: 500px;background: #00f;position: relative;">
</div>
</div>
将页面划分为上下两部分;
<div style="width: 100%;height: 500px;background: #00f;position: relative;">
<div style="background: #ccc;width: 20%;float: left;height: 500px;">
{% block left %}
{% endblock %}
</div>
<div style="background: #fff;width: 80%;float: left;height: 500px;">
{% block right %}
{% endblock %}
</div>
</div>
将页面划分为左右两部分。
相关文章推荐
- 常见的几种页面内容布局方式
- HTML DOM Document 对象
- 三级联动第二种方法 三级联动.html
- html 中表单元素input type="hidden"的作用
- 表单提交复选框(checkbox)注意事项
- form表单提交的几种方法
- html表单的几种提交方式总结
- 让DIV内部内容撑开外层的div方法
- html2image 乱码
- 浅谈语义化的HTML结构到底有什么好处
- HTML标签学习总结(3)
- html 标签
- mvc中Html.AntiForgeryToken的作用和用法
- HTML基础
- HTML的DOCTYPE的三种类型
- 对XHTML与HTML的区别
- HTML简明教程(一)
- HTML简明教程(二)
- Html中Input中屏蔽Enter键
- 对.html与.htm与.shtml的区别于认识