`
爪哇GOOD
  • 浏览: 56083 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

对于mako模板的一些使用心得

阅读更多
   学习Python也有一段时间了,最近琢磨了一个增,删,改,查的小dome,当然要有一个相对清晰的web界面,于是利用这几天的时间研究了下mako模板的单独使用.mako是Python的一种模板语言,当然既然是模板语言就有它自己的一套语法存在.首先在自己的机器上安装一个mako的运行环境,这个很简单,我用的是easy_install的方法,很快而且很顺利的安装完毕.要想知道是否安装成功了,只需要进入到你安装的Python目录下面是否存在script文件夹目录.接下来就是开始折腾mako的语法结构了,其实mako的语法在静态的语法结构上完全可以引用html的格式来书写,当然也有很多不同之处,要用到mako模板首先需要导入模板和引用模板:
  from mako.template import Template
   mytemplate = Template(filename='test.mako')
   return [mytemplate.render()]
我这里写了一个test.mako的文件,文件内容如下:
<html>
<head>
  <title>TodoList</title>
</head>
<body>
  <form>
  <table border="1" style="margin-top:100px;" cellspacing="10" cellpadding="10" align="center" bordercolor="green">
  <tr>
      <td>Todo</td>
      <td>Description</td>
      <td>Owner</td>
      <td>Priority</td>
  </tr>
   % for item in todos:
   <tr>   
       <td>${item.id}</td>
       <td>${item.todo}</td>
       <td>${item.owner}</td>
       <td>${item.priority}</td>
   </tr>
   % endfor
  </table>
   </form>
</body>  
</html>
这里也许你会发现这不是html的格式吗,是的,但是注意% for item in todos:
   <tr>   
       <td>${item.id}</td>
       <td>${item.todo}</td>
       <td>${item.owner}</td>
       <td>${item.priority}</td>
   </tr>
   % endfor
循环遍历的部分跟我们的html或者EL表达式还是不一样的,这里有它自己的语法规范.基于mako的中文方面的资料很少,只能上http://www.makotemplates.org/看看它的语法结构,本人也是英语半桶水,但是有什么办法了,还是咬紧牙继续看下去吧.再发一个python的增删改查
def addOne(env, resp):
    qs=pkgQueryStr(env['QUERY_STRING'])
    if qs.has_key('todo'):
        new=Todos()
        new.id=Todos().all()[-1].id+1
        new.todo=qs.get('todo','')
        new.owner=qs.get('owner')
        new.priority=int(qs.get('priority','1'))
        new.put()
        return ['a new todo added!<br>']
    return ['Wrong add operation:(']


def updateOne(env, resp):
    qs=pkgQueryStr(env['QUERY_STRING'])
    id=qs.get('id')
    item=Todos().get('id',int(id))
    if qs.has_key('todo'):
      # item.id=int(qs.get('id'))
       item.update('id', int(id), todo =qs.get('todo',''), owner =qs.get('owner'),priority=int(qs.get('priority','1')) )
       return ['update todo sucess!<br>']
    return ['Wrong update operation:(']
   

def deleteOne(env ,resp ,id):
    Todos().delete('id',int(id))
    todos=Todos().all()
    mytemplate = Template(filename='todolist.mako')
    return [mytemplate.render(todos=todos)]
   
1
0
分享到:
评论

相关推荐

    mako 0.5.0 Python Mako Template模板

    2. **内联表达式**:Mako允许在模板中直接使用Python表达式,比如`${expr}`,这使得动态内容的生成变得简单。 3. **函数与方法调用**:模板可以直接调用Python函数和对象的方法,无需额外的转换步骤,增强了模板的...

    python mako 官方文档

    6. **API参考**:API参考部分(1.7)会提供详细的Mako模板引擎API的使用说明,这对于开发者来说是理解和使用Mako模板引擎的核心部分。 7. **语法**:Mako模板引擎的语法部分(2Syntax)可能解释了Mako模板中使用的...

    django-mako-0.1.3.tar.gz

    通过阅读源代码和相关文档,你可以学习到如何配置 Django 以使用 Mako 作为默认的模板引擎,以及如何编写 Mako 模板来替代 Django 的原生模板语言。 总的来说,Django Mako 为 Python Web 开发提供了一种新的选择,...

    mako-源码.rar

    Mako使用输出缓存机制来优化性能,对于计算昂贵的操作,只在首次执行时计算结果,后续请求则直接从缓存中获取。 2.3 展开与执行 模板在运行时被展开为Python代码,然后执行这些代码以生成最终的输出。展开过程中,...

    flask-mako:为Flask中的Mako模板提供支持

    4. **内联代码**:Mako允许在模板中使用`和`%&gt;`包围的Python代码块,直接执行Python语句,增强了模板的功能。 5. **模板缓存**:Mako可以缓存编译后的模板,提高性能,减少不必要的解析和编译时间。 6. **模板局部...

    Mako-0.2.5.tar.gz

    2. **高效的执行**:Mako 使用预编译机制,模板在首次运行时会被编译成 Python 代码,提高了执行效率。 3. **灵活的插值**:Mako 支持多种字符串插值方式,包括 `${expression}`、`%{...}` 和 `#{...}`,可以根据...

    Mako-0.4.1.tar.gz

    相比而言,Django 内建的模板引擎,为了维持所谓模板语法的纯粹性和简单性,更纯粹的满足 MVC 模式的规定,牺牲了很多灵活性,一些高级的功能不得不利用 tag 和 filter 来实现,其写法并不太方便。因此,将 Mako ...

    BigGenerator:使用 MAKO 模板引擎用 Python 编写的代码生成器项目

    MAKO模板引擎是Python社区广泛使用的模板库,它提供了灵活的语法,允许开发者在模板中编写动态逻辑,从而在运行时生成定制化的输出。 在【描述】中提到,“大生成器”是这个项目的核心概念,暗示了其设计目标是为了...

    Mako-1.0.7.tar.gz

    《Mako模板引擎:在Ansible自动化部署中的关键角色》 在现代的IT环境中,自动化运维工具如Ansible已经成为了不可或缺的一部分。...理解并掌握"Mako"的使用,对于提升Ansible自动化运维的效率和质量具有重要的意义。

    pyramid_mako:金字塔Web框架的Mako模板系统绑定

    在Pyramid中使用Mako,首先需要安装`pyramid_mako`这个库,它是Pyramid官方支持的Mako集成包。安装完成后,可以在配置文件中设置默认的模板引擎为Mako,这样Pyramid就会自动处理Mako模板。 ```python from pyramid....

    在Python中使用Mako模版库的简单教程

    Mako是一个高性能的Python模板库,它的语法和API借鉴了很多其他的模板库,如Django、Jinja2等等。 基本用法 创建模板并渲染它的最基本的方法是使用 Template 类:   from mako.template import Template t = ...

    Mako-0.7.0.tar.gz

    9. **与Web框架的集成(Integration with Web Frameworks)**:Mako与其他Python Web框架如Pylons、Pyramid、Flask和Django等有很好的集成,可以直接在这些框架中使用Mako模板。 在解压Mako-0.7.0.tar.gz后,你会...

    mako:适用于Python的Mako模板的镜像-gitthub main现在位于https

    适用于Python的Mako模板Mako是用Python编写的模板库。 它提供了一种熟悉的非XML语法,可以将其编译为Python模块以实现最佳性能。 Mako的语法和API借鉴了许多其他最佳思想,包括Django模板,猎豹,Myghty和Genshi。 ...

    Python库 | aiohttp_mako-0.3.0-py3-none-any.whl

    "aiohttp_mako"库正是将这两个强大的工具结合在一起,它提供了在aiohttp应用中使用Mako模板的功能。这意味着开发者可以在异步web应用中利用Mako的强大模板能力来生成动态页面。通过这个库,你可以: 1. **快速构建...

    Python实现模板打印

    使用模板引擎:选择适合的模板引擎库,如Jinja2、Mako等,并导入相关库。 渲染模板:使用所选的模板引擎库将数据填充到模板中,生成最终的打印内容。具体的渲染方式和语法会根据所选的模板引擎而有所不同。 打印...

    Mako_TechMan_en.pdf

    Mako G相机技术手册详细介绍了Mako G系列相机的功能、接口、兼容标准、安装及使用。以下将根据手册提供的信息,详细解释其中包含的技术知识点。 标题中提到的"Mako G Technical Manual"表明文档是一份技术手册,...

    PyPI 官网下载 | django-mako-plus-5.4.15.tar.gz

    而Mako模板则是一个高性能、灵活且功能丰富的模板语言,它的设计目标是提供一种易于阅读、编写和维护的模板语法。 首先,我们来了解一下Django。Django的核心特性包括模型(ORM)用于数据库操作,URL路由系统,以及...

    mako for python

    Mako is a template library written in Python. It provides a familiar, non-XML syntax which compiles into Python modules for maximum performance. Mako's syntax and API borrows from the best ideas of ...

    Pyramid Mako模板引入helper对象的步骤方法

    原理是我们在pyramind的before render event 中插入我们的helper 1. 创建helper.py文件,在里面添加上我们常用的方法 2. 在__init__.py文件中: 加入这个函数:复制代码 代码如下... 在模板中使用定义的方法,h.method()

    anathem:使用mako模板构建模块化OpenLayers客户端的简单模板处理器。 提供的配置文件创建了使用来自挪威国家地图管理局(Kartverket)的服务的地图客户端。

    使用mako模板构建模块化OpenLayers客户端的简单模板处理器。 ./anathem.py theme 在主题子目录中的配置文件“ theme.yaml”上运行处理器。 主题确定如何在模板子目录中组装模板。 范本 模板遵循mako include语法。...

Global site tag (gtag.js) - Google Analytics