python中flask(六)
上一章讲完了for和if的问题,这一部分主要是关于flask中html模版的继承。
1.模版继承概念
由于很多大型的网站都是由着多个页面而组成,如果观察会发现,页面和页面之间都会有一些相同之处,比如页面的导航栏一般是不会变的,变的一般只是在页面中的内容,但是为了每个页面都要使用相同的代码,不仅使用麻烦而且不便于后期维护调整,因此就出现了模版的继承。举个例子:
以上是我前两天所搭建网页框架,可以看到,红框中的部分就是相同的导航栏,即继承于同一个父模版,在实际情况下,父模版一般以base.html命名。
2.模版继承用法
从代码实现上来讲,我们要首先写父模版,就和寻常html写法没有区别,当然了,如果我们想引用的话只需要使用 {% extends ‘base.html’ %}(把父模版命名为base)。如果我们想在模版里面插入东西怎么办?在父模版需要的地方写入:{% block 自定名称 %}{% endblock %},类似一个小代码块,只需要在想要的文件中写{% block 自定名称 %}你需要的内容{% endblock %}即可。
展示一个博主在实战中的引用例子:
<!-- 导入父模版,一般为网页的基础导航条 -->
{% extends 'base_index.html' %}
<!-- title一般用在添加名字,不同的网页可以加上不同的名字 --!>
{% block title %}后台首页{% endblock %}
<!-- 引入CSS样式,css文件一般可以用来调整文字显示格式,实战会用到 -->
{% block head %}
<link rel="stylesheet" href="{{ url_for('static',filename='css/back_index.css') }}">
{% endblock %}
<!-- 添加叫main的代码块,这一部分是在父模版中body的部分定义的,一般用来添加网页中的内容,比如添加几个分区展示信息什么的 -->
{% block main %}
<!-- 展示最新推送 -->
<br/>
<br/>
<ul class="list-group">
<h4>最新推送</h4>
<br/>
<a href="#" class="list-group-item">{{ '暂无' }}<span class="badge">{{ 0 }}</span></a>
</ul>
<!-- 展示最热股票 -->
<br/>
<br/>
<br/>
<ul class="list-group">
<h4>最新股市行情</h4>
<br/>
<a href="#" class="list-group-item">{{ '暂无' }}<span class="badge">{{ 0 }}</span></a>
</ul>
{% endblock main %}
3.结语
用好继承还是很重要的,它可以大幅减少我们的工作,而且只要更改父模版,就可以实现所有页面的更改,总的来说,继承是html中必不可缺的一环。