• 模板代码的复用: 宏 继承 包含


    当多个模板具有相同的顶部/底部内容/部分内容时,可以使用这三者来实现

    宏是一个函数, 返回一个模板或者html字符串

    • 定义宏
    {% macro input(name,value='',type='text') %}
        <input type="{{type}}" name="{{name}}"
            value="{{value}}" class="form-control">
    {% endmacro %}
    
    • 调用宏
    {{ input('name' value='zs')}}
    继承: 重用模板公共内容 :
    {% block top %} {% endblock %}
    • 不支持多继承
    • 为了便于阅读,在子模板中使用extends时,尽量写在模板的第一行。
    • 不能在一个模板文件中定义多个相同名字的block标签。
    • 当在页面中使用多个block标签时,建议给结束标签起个名字,当多个block嵌套时,阅读性更好。

    包含: 将另一个模板整个加载到当前模板中,并直接渲染。

    • include的使用
    {% include 'hello.html' %}
    

    包含在使用时,如果包含的模板文件不存在时,程序会抛出TemplateNotFound异常,可以加上 ignore missing 关键字。如果包含的模板文件不存在,会忽略这条include语句。

    • include 的使用加上关键字ignore missing
    {% include 'hello.html' ignore missing %}

    • 宏(Macro)、继承(Block)、包含(include)均能实现代码的复用。
    • 继承(Block)的本质是代码替换,一般用来实现多个页面中重复不变的区域。
    • 宏(Macro)的功能类似函数,可以传入参数,需要定义、调用。
    • 包含(include)是直接将目标模板文件整个渲染出来
  • 相关阅读:
    redis如何实现数据同步
    mysql调优学习笔记
    介绍一个好用的dao层与mybatis互跳的idea插件MyBatisCodeHelperPro
    springboot执行流程
    zookeeper
    (原创) cocos2dx使用Curl连接网络(客户端)
    (转) Eclipse连接MySQL数据库(傻瓜篇)
    (原创)cocos2dx使用jsoncpp的正确姿势
    Java web开发(17)SpirngMVC 详解
    PLC 程序和仿真
  • 原文地址:https://www.cnblogs.com/zxt-cn/p/9126829.html
Copyright © 2020-2023  润新知