您的位置:首页 > 编程语言 > Go语言

对比mako模板继承与Django的模板继承

2012-06-07 13:44 573 查看
Mako Templates for Python

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

Mako:1.10 msMyghty:4.52 ms
Cheetah:1.10 msGenshi:11.46 ms
Django:2.74 msKid: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更形象一些
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: