`
duka
  • 浏览: 39784 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在 django 中使用 mako or jinja2 (精简版)

阅读更多
介绍:mako模版跟据多方测试,是目前渲染最快的模版。好不好用,仁者见仁。
下面是我从网上总结下来的精简版。jinja2 也可以用,只要小改一下。
#mymako.pyfrom django.template.context import Context
from django.http import HttpResponse
from mako.template import Template
from mako.lookup import TemplateLookup
import os

def render_to_response(t,c=None,context_instance=None):
    path = os.path.join(os.path.dirname(__file__), 'templates/')
    mylookup = TemplateLookup(directories=[path],output_encoding='utf-8',input_encoding='utf-8')
    mako_temp = mylookup.get_template(t)
    if context_instance:
        context_instance.update(c)
    else:
        context_instance = Context(c)
    data = {}
    for d in context_instance:data.update(d)
    return HttpResponse(mako_temp.render(**data))

把上面这个 mymako.py 放到 project下,随时就可以调用了,下面是调的例子:
#views.py
from django.template import RequestContext
from mymako import render_to_response
from django import forms

def index(request):
    if request.method == 'GET':
        form = MyForm()
    else:
        form = MyForm(request.POST)
    return render_to_response('mako_temp.html',{'form':form},RequestContext(request))

class MyForm(forms.Form):
    name = forms.CharField(label='name',required=True)


mako_temp.html
<html>
<head>
</head>
<body>
<form action="." method="post">
${form}<br />
<input type="submit" value="post"/>
</form>
</body>
</html>
分享到:
评论
5 楼 Blithe 2010-04-13  
yko2008 写道
django模板写不了代码,自定义标签感觉麻烦,可能是接触得少

同感
4 楼 yko2008 2010-04-13  
django模板写不了代码,自定义标签感觉麻烦,可能是接触得少
3 楼 Blithe 2010-04-08  
duka 写道
范三山 写道
mako很好用 ,django的模板让我抓狂


用django的模版,有时为了一个小细节而不得不绕个大圈子。

指哪地方  标签?
2 楼 duka 2010-04-08  
范三山 写道
mako很好用 ,django的模板让我抓狂


用django的模版,有时为了一个小细节而不得不绕个大圈子。
1 楼 范三山 2010-04-07  
mako很好用 ,django的模板让我抓狂

相关推荐

    pyjade, Django Jinja2和Mako的Jade 模板系统.zip

    pyjade, Django Jinja2和Mako的Jade 模板系统 PyJade PyJade是 python的一个高性能端口,它将任何. jade 源转换为每个模板语言( 。Django,Jinja2,Mako或者 Tornado ) 。命令行实用程序要简单地将转换输出到控制台...

    Python库 | pyramid_jinja2-1.9.zip

    1. **配置集成**:在Pyramid应用中使用Jinja2,首先需要在设置文件中配置pyramid_jinja2库,指定模板目录和默认模板后缀等参数。 2. **模板渲染**:Jinja2模板可以包含HTML、CSS、JavaScript等,通过变量替换和控制...

    JinJa开发帮助文档

    集成部分涉及到了如何将Jinja2与其他开发工具和框架集成,例如Vim、Babel、Pylons、TextMate等,这有助于开发者在不同的开发环境中使用Jinja2进行模板设计和开发。 文档最后还提供了一些从其他模板引擎切换到Jinja2...

    jinja doc jinja文档pdf

    介绍如何在TextMate编辑器中使用Jinja2。 #### 6.4 Vim 解释如何在Vim编辑器中使用Jinja2。 ### 7. 从其他模板引擎切换 #### 7.1 Jinja1 介绍从Jinja1切换到Jinja2的注意事项。 #### 7.2 Django 说明从Django...

    python中主流的模板系统-Jinja2模板渲染

    2. 业务逻辑控制:相比于Mako模板,Jinja2鼓励将大部分业务逻辑保留在视图或控制器中,模板主要负责展示,避免了模板中过多的复杂逻辑。 3. 性能:与Django模板系统相比,Jinja2在性能上有一定的优势。 4. 可读性:...

    Python库 | jinja2_ospath-0.1.0-py2.py3-none-any.whl

    在Python开发中,结合使用Jinja2和os.path,可以实现模板中对文件和目录的智能操作,如动态构建文件路径、检查文件是否存在、读取文件内容等,大大提升了代码的灵活性和可维护性。 总结来说,"jinja2_ospath-0.1.0-...

    Python库 | jinja2-render-1.3.tar.gz

    Jinja2遵循了Mako和Django模板语言的设计理念,并且在可读性和灵活性上有所提升。它被广泛应用于Web应用开发,尤其是与Flask和Django等框架结合时,能够帮助开发者快速构建动态网页。 Jinja2 Render 1.3是Jinja2的...

    一个在Sublime Text3下使用Python-jinja2模板引擎将编写的Html模板编译为静态html文件的工具插件

    Jinja2是Python的一个现代、设计者友好的模板引擎,它遵循了Mako和Kid模板引擎的设计理念,并且完全符合Python的语法。Jinja2提供了诸如变量、控制流、过滤器、宏、继承等特性,使得HTML模板编写更加简洁和灵活。...

    pypugjs:适用于Django,Jinja2和Mako模板的PugJS语法适配器

    Pypugjs,也称为Pug for Python,是一款强大的工具,它为Python开发者提供了一种在Django、Jinja2和Mako模板中使用Pug(原名Jade)语法的能力。PugJS是一种简洁、优雅的HTML模板语言,其主要设计目标是提高开发者的...

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

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

    mako for python

    Mako's syntax and API borrows from the best ideas of many others, including Django and Jinja2 templates, Cheetah, Myghty, and Genshi. Conceptually, Mako is an embedded Python (i.e. Python Server Page...

    python 的django,quixote,uliweb三个web框架

    它具有灵活的URL映射,支持多种模板引擎,包括Mako和Jinja2,以及自己的UliTemplate。Uliweb的ORM可以与多种数据库兼容,包括SQLite、MySQL和PostgreSQL。此外,Uliweb强调插件式设计,使得开发者可以通过安装不同的...

    Pythonweb开发=几个模板系统的性能对比.pdf

    在提供的测试中,Jinja2的模板结构清晰,使用了`{% for %}`循环和`{{ }}`表达式。Jinja2支持编译缓存和优化,这有助于提高渲染速度。在实际应用中,Jinja2通常表现出良好的性能。 2. **Cheetah** Cheetah模板系统...

    Flask模板引擎之Jinja2语法介绍

    Jinja2 使用特定的分隔符来区分模板中的不同部分: - **{%%} 语句**:用于执行模板内的控制结构,例如循环或条件判断。 - **{{}} 表达式**:用于输出变量或表达式的值到最终的 HTML 输出中。 - **{##} 注释**:用于...

    Python使用模板共8页.pdf.zip

    Django模板语言(DTL)同样具备了变量、控制流和过滤器等功能,并且与Django的ORM(对象关系映射)系统无缝集成,使得数据库查询结果能直接在模板中使用。 接下来,可能涉及到的是如何组织和使用模板文件。在Flask...

    Python web开发几个模板系统的性能对比.docx

    在测试中,Jinja2的语法简洁明了,使用`{% for %}`进行循环,`{{ i[0] }}`和`{{ i[1] }}`访问数组元素。Jinja2支持编译缓存和其他优化策略,这可能解释了其在实际应用中的高效性能。 2. **Cheetah**:Cheetah模板...

    Python库 | feincms3-0.20.1-py2.py3-none-any.whl

    在项目中使用Feincms3,首先需要在Django项目的settings.py文件中配置并注册Feincms3,然后创建自己的内容类型和页面模型。之后,可以利用Django的视图和模板系统来呈现内容。 总的来说,Feincms3是一个强大且灵活...

Global site tag (gtag.js) - Google Analytics