七:模版文件的继承
模板可以继承,通过继承可以把模板中许多重复出现的元素抽取出来,放在父模板中,并且父模板通过定义block给子模板开一个口,子模板根据需要,再实现这个block进行具体内容定义。
{% extends "base.html" %}//1:继承父模板
{% block title %}Index{% endblock %}//2:书写title block
{% block head %}//3:书写head block
{{ super() }}//调用父模板中的内容,如果不调用,则此处会被子模板中书写的内容覆盖掉.important{color:#336699;}{% endblock %}
{% block content %}//4:书写content block
Index
Welcome to my awesome homepage.{% endblock %}
另外:模板文件中对block内容的调用,可以使用 self.blockName 的方式。
{% block title %}{% endblock %}
{{ self.title() }}
//调用title block的内容
注意:在子模板中,所有的标签和代码都要添加到从父模板中继承的block中。否则,这些文本和标签将不会被渲染。(因为子模板相当于把内容嵌入到父模板到block中,而没有写到block中的内容当然不会被嵌入,也就不会被渲染。)
八:过滤器
过滤器是通过(|)符号进行使用的,例如:{{ name|length }}:将返回name的长度。
过滤器相当于是一个函数,把当前的变量传入到过滤器中,然后过滤器根据自己的功能,再返回相应的值,之后再将结果渲染到页面中。