jinja2 er

七:模版文件的继承

模板可以继承,通过继承可以把模板中许多重复出现的元素抽取出来,放在父模板中,并且父模板通过定义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的长度。

过滤器相当于是一个函数,把当前的变量传入到过滤器中,然后过滤器根据自己的功能,再返回相应的值,之后再将结果渲染到页面中。

你可能感兴趣的:(jinja2 er)