web开发过程当中往往存在很多类似页面部分,例如菜单,那么怎么实现呢?
可以采取模版化,然后继承模版 下面的例子当中base.html 就是模版文件。
引用页面使用{% base.html 'base.html'%} 方式继承模版。
但是每个页面不是所有内容都相同,怎么区别处理呢?
子模版使用block,python当中是在子类当中自己定义自己的属性,但是falsk的web实现这里不是,需要在父模版base.html定义接口
目录如下:
模版base.html代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.nav{
background: #3a3a3a;
height: 65px;
}
ul{
overflow: hidden;
}
ul li{
float: left;
list-style: none;
padding: 0 10px;
line-height: 65px;
}
ul li a{
color: #ffffff;
}
</style>
</head>
<body>
<div class="nav">
<ul>
<li><a href="#">首页</a></li>
<li><a href="#">成绩查询</a></li>
</ul>
</div>
{% block main %}{% endblock %}
</body>
</html>
extend_block_demo.html 代码如下:
{% extends 'base.html' %}
{% block main %}
<h1>这是首页</h1>
{% endblock %}
extend_block_login_demo.html 代码如下:
{% extends 'base.html' %}
{% block main %}
<h1>这是登录页面</h1>
{% endblock %}
extend_block_demo.py 代码如下:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/extend_block_demo/')
def hello_world():
return render_template('extend_block_demo.html')
@app.route('/login/')
def login():
return render_template('exctend_block_login_demo.html')
if __name__ == '__main__':
app.run(debug=True)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。