1、介绍
模板中宏跟python中的函数类似,可以传递参数,但是不能有返回值,可以将一些经常用到的代码片段放到宏中,然后把一些不固定的值取出来当成一个变量,使用宏的时候,参数可以为默认值。
示例代码:
(1)定义宏:

{% macro input(name="",value="",type="text") %}
        <input type="{{ type }}" name="{{ name }}",value="{{ value }}">
    {% endmacro %}

(2)使用宏
html中的

<p>{{input('username')}}</p>
<p>{{input('password',type='password')}}</p>

2、导入宏
在真正的开发中,会将一些常用的宏单独放在一个文件中,在需要使用的时候,再从这个文件中进行导入。
导入方法有:
(1)import "宏文件的路径"as xxx(需要导入的宏的名字) (2)from “宏文件的路径” import 宏的名字 [as 宏的别名]([ ]中的可以不要)
示例:

{% from "macro.html" import input as input_filed %}
...
<p>{{input_filed("username")}}</p>
<p>{{input_filed("password",type="password")}}</p>

注意:(1)宏的路径不要以相对路径去寻找,要以’templates’作为绝对路径去寻找。
(2)如果想要在导入宏的时候,就把当前模板的一些参数传入给宏所在的模板,那么就应该在导入的时候使用’with context’。
示例:from xxx.html import input with context