继承: 1、创建父类模块news_base.html,所有子类的代码都合并写在父类模块news_base.html里面。
子类之间代码不同的地方在父类中抽取成{%block 名称 %} {% endblock %}。
2、子类:{% extends 'news_base.html' %}继承父类。
{%block 名称 %} {% endblock %}改写对应的block。
如下图:
{% extends 'news_base.html' %}
{% block titleBlock %}
首页-新经资讯
{% endblock %}
{% block scriptBlock %}
<script type="text/javascript" src="../static/js/index.js"></script>
{% endblock %}
{% block categoryBlock %}
<ul class="menu fl">
<li class="active" data-cid="0"><a href="javascript:;">最新</a></li>
<li data-cid="1"><a href="javascript:;">股市</a></li>
<li data-cid="2"><a href="javascript:;">债市</a></li>
<li data-cid="3"><a href="javascript:;">商品</a></li>
<li data-cid="4"><a href="javascript:;">外汇</a></li>
<li data-cid="5"><a href="javascript:;">公司</a></li>
</ul>
{% endblock %}
宏 : 1、在一个模块macro.html里定义宏:{% macro input()%}。 macro相当于def,是定义的意思。input是 函数名。()里面填参数。
{% macro input(label='', type='text', name='', value='')%}
<label>{{ label }}</label><input type="{{ type }}" name="{{ name }}" value="{{ value }}"><br/>
{% endmacro %}
2、在另一个模块里导入上面模块起别名:{% import 'macro.html' as func %}。func是别名
3、{{ 别名.函数名(参数)}} —> {{ func.input() }}
{% import 'macro.html' as func %}
<form>
{{ func.input('用户名:', name="username") }}
{{ func.input('身份证号:', name="idcard") }}
{{ func.input('密码:', type="password", name="password") }}
{{ func.input('确认密码:', type="password",name="password2") }}
{{ func.input(type="submit", value="注册") }}
</form>
包含: 1、{% include 需要导入的模块名 ignore missing %}。 ignore missing作用:即使要导入的模块不存在,也不会报错。
吃饭,睡觉,做事 <br>
{% include 'include.html' ignore missing %}
生活简单如此 <br>