zoukankan      html  css  js  c++  java
  • 模板代码的复用: 宏 继承 包含

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

    宏是一个函数, 返回一个模板或者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)是直接将目标模板文件整个渲染出来
  • 相关阅读:
    TreeList Linq
    MasterDetail Linq
    C# 事务处理
    设计模式——代理模式(Proxy Pattern)
    设计模式——装饰模式(Decorator Pattern)
    C# 调用WCF服务
    加密解密
    Effective C#高效编程(02:常量)
    切换城市功能
    DataPager控件使用
  • 原文地址:https://www.cnblogs.com/zxt-cn/p/9126829.html
Copyright © 2011-2022 走看看