zoukankan      html  css  js  c++  java
  • 对比mako模板继承与Django的模板继承

    Mako Templates for Python

    Mako 又一个Python下面的Template类库,又是出自精力旺盛的Michael Bayer,他还同时是sqlalchemy、Myghty的作者,据说速度比Django自带的Template速度要快上几乎一倍

    Mako: 1.10 ms   Myghty: 4.52 ms
    Cheetah: 1.10 ms   Genshi: 11.46 ms
    Django: 2.74 ms   Kid: 14.54 ms

    但是它默认的语法风格感觉象是ASP和Perl,可能借鉴了Django的原因吧,使用方式总的来说跟Django的Template非常接近,但是对应Django的Template当中Block的处理这方面,Mako完全不同。

    在Django当中是在父模板(base.html) 当中定义了一个空Block,比如一个叫做main的Block:
    <html>
    <body>
    {% block main %} {% endblock %}
    </body>
    </html>

    然后在子模板当中实现该block的代码:
    {% extends "base.html" %}
    {% block main %}
    some html code
    {% endblock %}

    但是在Mako当中一切使用函数来完成,比如在父模板(base.html) 当中定义main的函数 如下:
    <html>
    <body>
       ${self.main()}
    </body>
    </html>

    然后在子模板当中实现该函数:
    <%inherit file="base.html"/>
    <%def name="main()">
    some html code
    </%def>

    当然,Mako当中的函数不仅仅限于用于继承,本来就是当作一个正常的函数来使用,但是当作上面这种用法的时候,我还是觉得Django的Block更形象一些
  • 相关阅读:
    ComboBoxEdit 数据绑定 使用模板
    ObservableCollection
    ListView.MouseDoubleClick
    Style 的查找 FindResource
    OpenFileDialog
    ItemsControl
    下拉框比较符
    ListView 控件与 内容
    测试oracle数据库连接
    MySQL ERROR 1300 (HY000): Invalid utf8 character string
  • 原文地址:https://www.cnblogs.com/xiami303/p/2540190.html
Copyright © 2011-2022 走看看