Flask 之 宏
2024-10-20 01:05:01
宏
对宏(macro)的理解:
- 把它看作 Jinja2 中的一个函数,它会返回一个模板或者 HTML 字符串
- 为了避免反复地编写同样的模板代码,出现代码冗余,可以把他们写成函数以进行重用
- 需要在多处重复使用的模板代码片段可以写入单独的文件,再包含在所有模板中,以避免重复
使用
- 定义宏
{% macro input(name,value='',type='text') %}
<input type="{{type}}" name="{{name}}"
value="{{value}}" class="form-control">
{% endmacro %}调用宏
{{ input('name' value='zs')}}
这会输出
<input type="text" name="name" value="zs" class="form-control">
把宏单独抽取出来,封装成html文件,其它模板中导入使用,文件名可以自定义macro.html
{% macro function(type='text', name='', value='') %}
<input type="{{type}}" name="{{name}}"
value="{{value}}" class="form-control">
{% endmacro %}在其它模板文件中先导入,再调用
{% import 'macro.html' as func %} {% func.function() %}
代码演练
- 使用宏之前代码
<form> <label>用户名:</label><input type="text" name="username"><br/> <label>身份证号:</label><input type="text" name="idcard"><br/> <label>密码:</label><input type="password" name="password"><br/> <label>确认密码:</label><input type="password" name="password2"><br/> <input type="submit" value="注册"> </form>
定义宏
{#定义宏,相当于定义一个函数,在使用的时候直接调用该宏,传入不同的参数就可以了#} {% macro input(label="", type="text", name="", value="") %} <label>{{ label }}</label><input type="{{ type }}" name="{{ name }}" value="{{ value }}"> {% endmacro %}
- 使用宏
<form> {{ input("用户名:", name="username") }}<br/> {{ input("身份证号:", name="idcard") }}<br/> {{ input("密码:", type="password", name="password") }}<br/> {{ input("确认密码:", type="password", name="password2") }}<br/> {{ input(type="submit", value="注册") }} </form>
最新文章
- Java入门记(五):容器关系的梳理(下)——Map
- 解决mysqldump: Got error: 1044: Access denied for user
- [Ember] Ember.js Templates
- 斗地主你什么时候才会托管?(.NET中的托管于非托管)
- 2015第9周三html5学习0
- Hive HA使用说明
- JAVA设计模式(09):结构化-代理模式(Proxy)
- javascript selenium全套教程发布
- python之re正则简单够用
- python之路—博客目录
- 提取和匹配线特征的一个demo
- Python_关于多线程下变量赋值取值的一点研究
- HTC Vive 基础入门 基于Unity3D引擎
- nginx_server_location对客户资源的辨别规则
- 学习笔记4-pathon的range()函数和list()函数
- 选择提供器 - 选择监听器(selection provider-selection listener)模式
- WIFI_仿手机写wifi应用程序_WDS
- roadhog中如何拷贝文件
- 【Android】12.4 利用Intent读取图库中的图片
- Linux安装配置Nginx
热门文章
- http的报文结构和状态码总结
- day1 -- Python变量、注释、格式化输出字符串、input、if、while、for
- OSI七层协议&;TCP协议(三次握手四次挥手)
- CreateEvent进程同步
- c++ Message与Folder 拷贝 析构(没有动态空间的类)
- GAN实战笔记——第四章深度卷积生成对抗网络(DCGAN)
- 基于 Kafka 的实时数仓在搜索的实践应用
- WEB服务蜜罐部署实验
- [MethodImpl(MethodImplOptions.Synchronized)]与lock机制
- 【C#IO 操作】stream 字节流|字符流 |比特流