宏有点类似于函数,接收一些数据,进行处理,但是没有返回值,可以将一些常用的代码片段放到宏中,然后把不固定的值抽出来做变量

使用maacro来定义宏,使用宏的时候,参数可以设默认值

自定义一个input标签

{% macro input(name='', value='', type='text') %}
<input type="{{ type }}", name="{{ name }}", value="{{ value }}">
{% endmacro %} <h1>login</h1>
<table>
<tbody>
<tr>
<td>用户名:</td>
<td>{{ input('username') }}</td>
</tr>
<tr>
<td>密码:</td>
<td>{{ input('password', type='password') }}</td>
</tr>
<tr>
<td></td>
<td>{{ input(type='submit', value='提交') }}</td>
</tr>
</tbody>
</table>

真实工作情况下是把宏单独封装起来,要用的时候导入使用(起点路径为templates),导入的方式与python一样:import aaa、import aaa as bbb、from aaa import bbb as ccc

如果要在带入宏的时候,就把当前模板的一些参数传给宏所在的模板,就要在导入的时候使用with context

最新文章

  1. appium的几点总结
  2. C# 用原生JS进行文件的上传
  3. hdu-5992 Finding Hotels(kd-tree)
  4. C扩展python的module和Type
  5. rabbitMQ第一篇:rabbitMQ的安装和配置
  6. css-子div设置margin-top后,父div与子div一起下移
  7. ActionScript学习笔记
  8. mysql5.6 TIME,DATETIME,TIMESTAMP
  9. LeetCode: Binary Tree Traversal
  10. MVC中Area的使用
  11. COJ 1007 WZJ的数据结构(七) 树上操作
  12. tomcat 产生heapdump文件配置
  13. javascript 学习随笔6
  14. The specified JRE installation does not exist异常的原因和解决办法
  15. oracle,mysql,sql server三大数据库的事务隔离级别查看方法
  16. sql 随笔更新
  17. CVE-2018-19968
  18. Chrome 谷歌浏览器清除HTTPS证书缓存
  19. 使用Python启动一个简单的服务器
  20. 深入理解Java中停止线程

热门文章

  1. 运维都该会的Socket知识!
  2. osworkflow 入门基础
  3. 自动化运维——MySQL备份脚本(二)
  4. JS 深拷贝/合并
  5. json dumps dump区别
  6. php的异步非阻塞swoole模块使用(一)实现简易tcp服务器--服务端
  7. qt5-帮助文档的说明
  8. Cookie相关工具方法
  9. css 内容居中
  10. python下selenium模拟浏览器基础操作