介绍: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>
分享到:
相关推荐
pyjade, Django Jinja2和Mako的Jade 模板系统 PyJade PyJade是 python的一个高性能端口,它将任何. jade 源转换为每个模板语言( 。Django,Jinja2,Mako或者 Tornado ) 。命令行实用程序要简单地将转换输出到控制台...
1. **配置集成**:在Pyramid应用中使用Jinja2,首先需要在设置文件中配置pyramid_jinja2库,指定模板目录和默认模板后缀等参数。 2. **模板渲染**:Jinja2模板可以包含HTML、CSS、JavaScript等,通过变量替换和控制...
集成部分涉及到了如何将Jinja2与其他开发工具和框架集成,例如Vim、Babel、Pylons、TextMate等,这有助于开发者在不同的开发环境中使用Jinja2进行模板设计和开发。 文档最后还提供了一些从其他模板引擎切换到Jinja2...
介绍如何在TextMate编辑器中使用Jinja2。 #### 6.4 Vim 解释如何在Vim编辑器中使用Jinja2。 ### 7. 从其他模板引擎切换 #### 7.1 Jinja1 介绍从Jinja1切换到Jinja2的注意事项。 #### 7.2 Django 说明从Django...
2. 业务逻辑控制:相比于Mako模板,Jinja2鼓励将大部分业务逻辑保留在视图或控制器中,模板主要负责展示,避免了模板中过多的复杂逻辑。 3. 性能:与Django模板系统相比,Jinja2在性能上有一定的优势。 4. 可读性:...
在Python开发中,结合使用Jinja2和os.path,可以实现模板中对文件和目录的智能操作,如动态构建文件路径、检查文件是否存在、读取文件内容等,大大提升了代码的灵活性和可维护性。 总结来说,"jinja2_ospath-0.1.0-...
Jinja2遵循了Mako和Django模板语言的设计理念,并且在可读性和灵活性上有所提升。它被广泛应用于Web应用开发,尤其是与Flask和Django等框架结合时,能够帮助开发者快速构建动态网页。 Jinja2 Render 1.3是Jinja2的...
Jinja2是Python的一个现代、设计者友好的模板引擎,它遵循了Mako和Kid模板引擎的设计理念,并且完全符合Python的语法。Jinja2提供了诸如变量、控制流、过滤器、宏、继承等特性,使得HTML模板编写更加简洁和灵活。...
Pypugjs,也称为Pug for Python,是一款强大的工具,它为Python开发者提供了一种在Django、Jinja2和Mako模板中使用Pug(原名Jade)语法的能力。PugJS是一种简洁、优雅的HTML模板语言,其主要设计目标是提高开发者的...
Mako是一个高性能的Python模板库,它的语法和API借鉴了很多其他的模板库,如Django、Jinja2等等。 基本用法 创建模板并渲染它的最基本的方法是使用 Template 类: from mako.template import Template t = ...
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...
它具有灵活的URL映射,支持多种模板引擎,包括Mako和Jinja2,以及自己的UliTemplate。Uliweb的ORM可以与多种数据库兼容,包括SQLite、MySQL和PostgreSQL。此外,Uliweb强调插件式设计,使得开发者可以通过安装不同的...
在提供的测试中,Jinja2的模板结构清晰,使用了`{% for %}`循环和`{{ }}`表达式。Jinja2支持编译缓存和优化,这有助于提高渲染速度。在实际应用中,Jinja2通常表现出良好的性能。 2. **Cheetah** Cheetah模板系统...
Jinja2 使用特定的分隔符来区分模板中的不同部分: - **{%%} 语句**:用于执行模板内的控制结构,例如循环或条件判断。 - **{{}} 表达式**:用于输出变量或表达式的值到最终的 HTML 输出中。 - **{##} 注释**:用于...
Django模板语言(DTL)同样具备了变量、控制流和过滤器等功能,并且与Django的ORM(对象关系映射)系统无缝集成,使得数据库查询结果能直接在模板中使用。 接下来,可能涉及到的是如何组织和使用模板文件。在Flask...
在测试中,Jinja2的语法简洁明了,使用`{% for %}`进行循环,`{{ i[0] }}`和`{{ i[1] }}`访问数组元素。Jinja2支持编译缓存和其他优化策略,这可能解释了其在实际应用中的高效性能。 2. **Cheetah**:Cheetah模板...
在项目中使用Feincms3,首先需要在Django项目的settings.py文件中配置并注册Feincms3,然后创建自己的内容类型和页面模型。之后,可以利用Django的视图和模板系统来呈现内容。 总的来说,Feincms3是一个强大且灵活...