宏,macro,类似于函数,都需要定义,名字、参数。定义好之后,能直接拿过来用。不同点是 宏没有返回值,函数有;宏需要结束的符号,函数不需要。
###基本示例代码如下
{% macro input(name,value="",type="text")%}
<input type="{{ type }}" name="{{ name }}" value="{{ value }}" >
{% endmacro %}
{# 实现步骤#}
{# #定义一个宏,名字为input,里面有三个参数#}
{# #相当于函数规则的部分,所有的内容用户输入#}
{# #所有的宏得有结束的地方#}
<h1>hi,少年,请先亮青子</h1>
<table>
<tbody>
<tr>
<td>用户名:</td>
<td>{{ input('username') }}</td>
</tr>
<tr>
<td>密码:</td>
<td>{{ input('username' ,type='password')}}</td>
</tr>
<tr>
<td></td>
<td>{{ input(value='提交' ,type='submit')}}</td>
</tr>
</tbody>
</table>
上文中宏直接写到html文件中,实际开发过程中一般将宏,统一存放到template中,然后引入
引入的时候,是针对 template 绝对路径
示例代码:
{% from 'macro/macro.html' import input %}
html文件中写好 context,可以直接引入的宏中,再通过宏添加到 html 中
{% import 'macro/macro.html' as macro with context %} {#以上是导入方式,常用的是下面这种,因为一个模板中可以存多个宏,但在下面引用的时候,需要指定的宏的名字#} {#格式 macro.input()#} {#with context 可以直接将此环境中使用的变量,引用到宏中(宏中也的引用变量),再从宏引用到html中#}