六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 32|回复: 0

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

[复制链接]

升级  94%

11

主题

11

主题

11

主题

童生

Rank: 1

积分
47
 楼主| 发表于 2013-1-15 02:37:53 | 显示全部楼层 |阅读模式
介绍:mako模版跟据多方测试,是目前渲染最快的模版。好不好用,仁者见仁。
下面是我从网上总结下来的精简版。jinja2 也可以用,只要小改一下。
#mymako.pyfrom django.template.context import Contextfrom django.http import HttpResponsefrom mako.template import Templatefrom mako.lookup import TemplateLookupimport osdef 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.pyfrom django.template import RequestContextfrom mymako import render_to_responsefrom django import formsdef 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>
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表