• mako模板


    http://liaofeng-xiao.iteye.com/blog/1297272  mako总结

    http://hi.baidu.com/smallfish_xy/blog/item/8e1fc288980ec7bb0e24445f.html   python template mako 学习笔记

    http://www.iteye.com/topic/634208   在Django中使用mako

    http://www.cnblogs.com/babykick/archive/2011/08/16/2140784.html  django如何集成mako模板

    http://www.makotemplates.org/ mako官方

    以下转自:http://www.cnblogs.com/fatway/archive/2010/01/29/learn-mako-template.html

    mako模板学习笔记
    前面已经转过一篇mako模板的调用方法,看了看也挺简单的,这次主要是学习模板的编写语法。之所以选择mako模板,除了它的口碑好之外,主要是我受不了web.py自带模板了,特别是控制结构那里,没有使用结束标记,非得缩进使用才行,严重影响页面的编排。因为没有搜到有现成的中文教程,就勉强看官方的英文原版了。做个学习记录在此。
    Mako语法
    mako模板可以是任何文本流形式的文件,HTML、XML都行,当然txt文本也是可以的。不过web.py里面如果使用render_mako的话还是只认HTML的。mako会从中查找变量、函数、定义块等进行执行,而且定义块里面可以直接编写Python代码。嘿嘿,神气得很呐。
    1、变量
    mako中使用“${}”来定义变量格式。
        
    显示变量temp的值:${temp}
    还算简单了,Django中使用{{}},web.py中直接使用$。${}里面的内容是直接被python执行的,所以呢可以在里面加上更多的操作:
    
    2、转义符
    在定义变量时,如果其中包含特殊符号时记得要使用转义符转换。u负责转换URL地址,h转换HTML,x对XML进行转义,trim就是去空格啦。
     
    3、控制结构
    mako模板中使用%来定义控制结构,像if、for、try之类的,关键的就是要使用“%end<name>”来关闭控制结构。这个应该很好理解了,上个菜:   
    4、注释
    这个没什么好说的,两个井号##是当行注释,而<%doc>和</%doc>中间可以写多行注释
    5、换行过滤
    同python代码中一样,可以使用“\”来强制不换行。
    6、Python代码块
    在mako模板中可以直接写py代码,这是个功能很强大的地方,python代码写在<%和%>之间即可。
    7、模块级代码
    上面有说可以直接在mako中上一般的python代码,还有更强大的地方,可以在引入模块和定义函数等等,在<%! %>中定义即可。
    这个模块级别的代码块是在引入mako模板时直接加载到内存中的,是优先于render定义的。所以并不能直接用来进行页面内容的输出。我个人感觉就是如果使用<%! %>来引入了模块和函数,就相当于在后台code中引入,可以作为发布后修改code的补丁形式。
    
    8、标签
    mako模板中其他的一些功能都是通过标签来定义的,定义格式为<%tagname></%tagname>。前面的多行注释<%doc></%doc>就是标签里的一种。
    官方文档对每个标签都有详细的描述,特别是像<%def>、<%namespace>、<%inherit>等都有专门的篇章进行介绍的。
    <%page>  定义模板的页面信息
    <%include>  引入其他文件
    <%def>  定义Python函数
    <%namespace>  名称空间,有点.NET的感觉
    <%inherit>  继承父模板
    <%namespacename:defname>  调用其他名称空间中的函数
    <%call>  一样的调用函数
    <%doc>  前面有了,就是注释
    <%text>  Doc,类似于Python的三引号。使用filter定义转义(h/u/t)
    -The End-
  • 相关阅读:
    如何从零开始开发一款嵌入式产品(20年的嵌入式经验分享学习)如何从零开始开发一款嵌入式产品(20年的嵌入式经验分享学习)
    shell命令【ulimit】
    ARM开发经典学习网站推荐
    [转]链表逆序
    [转]Rhythmbox中文乱码解决办法
    vi/vim 查找替换使用方法
    [转]程序员的十个层次 你属于哪一层?
    如何在程序中删除一个文件
    C/C++编译器错误代码大全
    R制作eset 的简单步骤
  • 原文地址:https://www.cnblogs.com/xiami303/p/2514846.html
Copyright © 2020-2023  润新知