# 宏:
模板中的宏跟python中的函数类似,可以传递参数,但是不能有返回值,可以将一些经常用到的代码片段放到宏中,然后把一些不固定的值抽取出来当成一个变量。
使用宏的时候,参数可以为默认值。相关示例代码如下:
1 1. 定义宏: 2 ```html 3 {% macro input(name, value='', type='text') %} 4 <input type="{{ type }}" name="{{ name }}" value="{{ 5 value }}"> 6 {% endmacro %} 7 ``` 8 2. 使用宏: 9 ```html 10 <p>{{ input('username') }}</p> 11 <p>{{ input('password', type='password') }}</p> 12 ```
### 导入宏:
1. `import "宏文件的路径" as xxx`。
2. `from '宏文件的路径' import 宏的名字 [as xxx]`。
3. 宏文件路径,不要以相对路径去寻找,都要以`templates`作为绝对路径去找。
4. 如果想要在导入宏的时候,就把当前模版的一些参数传给宏所在的模版,那么就应该在导入的时候使用`with context`。示例:`from 'xxx.html' import input with context`。