`
duka
  • 浏览: 39308 次
  • 性别: 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>
分享到:
评论
25 楼 mengzhaopeng 2010-08-25  
正在学习当中,支持以下
24 楼 mengzhaopeng 2010-08-25  
正在学习当中,支持以下
23 楼 mengzhaopeng 2010-08-25  
正在学习当中,支持以下
22 楼 pangjanne 2010-08-24  
想想问问在mako如何做国际化:
<%! import mako.ext.babelplugin %>
<%def name="title()">
${model._meta.verbose_name} ${_("Admin")}
</%def>
在模板渲染时总是会出错,根本不识别'_'这个符号:
TypeError: 'Undefined' object is not callable
21 楼 duka 2010-08-10  
jcjbrian 写道
Django不爽的地方之一: 没有继承ajax, form也不能用javascript来验证。。。


hehe 看来是被RAILS惯坏了。
20 楼 jcjbrian 2010-08-07  
Django不爽的地方之一: 没有继承ajax, form也不能用javascript来验证。。。
19 楼 闲云无心 2010-05-05  
mako应该不是渲染最快的模板了,我去年拿django,mako,jinja2做过个小测试,就算开了psyco,mako的速度还是没禁用speedsup扩展的jinja2快
18 楼 felinx 2010-04-26  
对django、pylons、bfg、tornado都不够满意,自己从server开始写起中...
17 楼 duka 2010-04-24  
jonyzhu 写道
aninfeel 写道
django看上去很美,遇到特殊定制的很让人抓狂,转到pylons和turbogear了

支持pylons!


我目前也正用 pylons 做一个项目 ,边学边做吧。
hehe
16 楼 jonyzhu 2010-04-23  
aninfeel 写道
django看上去很美,遇到特殊定制的很让人抓狂,转到pylons和turbogear了

支持pylons!
15 楼 mubs 2010-04-16  
范三山 写道
没看懂,这和form有什么关系

这种需求下你怎么设计django的Form?
14 楼 范三山 2010-04-16  
mubs 写道
对于简单的场景Form足够方便,可是对于复杂的html页面如何应用form才是最佳呢?比如常见的master/detail结构的那种页面,页面的上半部分显示作者的相关信息,下半部分显示这个作者书籍的一个列表,这种情况下django好象没有什么好的办法,我都是从request里直接取值的,很繁。


没看懂,这和form有什么关系
13 楼 mubs 2010-04-16  
jjx 写道
不是有formset吗?


Formset中的Form只能是一种类型
12 楼 jjx 2010-04-16  
不是有formset吗?
11 楼 mubs 2010-04-16  
对于简单的场景Form足够方便,可是对于复杂的html页面如何应用form才是最佳呢?比如常见的master/detail结构的那种页面,页面的上半部分显示作者的相关信息,下半部分显示这个作者书籍的一个列表,这种情况下django好象没有什么好的办法,我都是从request里直接取值的,很繁。
10 楼 bluecrystal 2010-04-16  
django form要用好需要费点力气,总体来说,django很不错
9 楼 duka 2010-04-14  
Blithe 写道
范三山 写道
django 除了模板以外 没什么称得上“不好”的地方

form 也不好用


hehe, 我到是感觉 django 的 form 很好用,面面俱到。
8 楼 Blithe 2010-04-14  
范三山 写道
django 除了模板以外 没什么称得上“不好”的地方

form 也不好用
7 楼 范三山 2010-04-13  
django 除了模板以外 没什么称得上“不好”的地方
6 楼 aninfeel 2010-04-13  
django看上去很美,遇到特殊定制的很让人抓狂,转到pylons和turbogear了

相关推荐

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

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

    python 零基础学习篇python课程django框架django模板7 jinja2的基本使用 .mp4

    python 零基础学习篇

    django整合jinja与sqlalchem

    django整合jinja与sqlalchemy

    django-jinja:与Django的简单无障碍jinja2集成

    詹戈-金贾与Django的简单无... 您可以使用pip安装它: pip install django-jinja如何以开发人员身份运行测试安装Tox自动化工具(在virtualenv外部),然后tox Tox将为不同的解释器版本创建virtualenvs并运行测试套件。

    在Django中使用PostgreSQL数据库2

    在Django中使用PostgreSQL数据库3人收藏此文章, 我要收藏发表于8个月前(2012-12-16 11:15) , 已有286次阅读 ,共0个评论配

    django-mako-0.1.3.tar.gz

    python的web开发框架django-mako-0.1.3

    Django使用Jinja2模板引擎的示例代码

    安装Jinja2 :pip install jinja2,在应用目录下添加jinja2_env.py设定环境变量。 from django.contrib.staticfiles.storage import staticfiles_storage from django.urls import reverse from jinja2 import ...

    更换Django默认的模板引擎为jinja2的实现方法

    今天小编就为大家分享一篇更换Django默认的模板引擎为jinja2的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    jinja, Jinja2模板引擎.zip

    jinja, Jinja2模板引擎 Jinja2Jinja2是用纯 python 编写的模板引擎。 它提供了一个 Django 激发非xml语法,但支持内联表达式和可选的沙箱。下面是Jinja模板的一个小示例:{% extends 'base.html' %}

    django-crudbuilder, 在 Django 中,通用CRUD实现.zip

    django-crudbuilder, 在 Django 中,通用CRUD实现 crudbuilder在 Django 中使用 Django tables2列出对象的通用CRUD实现。文档https://django-crudbuilder.readthedocs.org/en/la

    watermarker:在Django中轻松使用水印的工具

    它与Jinja2一起使用(需要django-jinja)经过测试Python 2.7 Django 1.6、1.7、1.8安装通过点: pip install django-watermarker设置在INSTALLED_APPS添加应用名称: INSTALLED_APPS = ( ... 'watermarker', ...)...

    django4中文文档

    Django内置了一个后台数据管理系统,经简单配置后,再编写少量代码即可使用完整的后台管理功能。 强大的缓存支持。Django内置了一个缓存框架,并提供了多种可选的缓存方式。 丰富的模板语言。Django模板语言功能丰富...

    Django版Django版

    Django版 Django版 Django版Django版Django版

    Django 4.0.3 中文官方文档 网页版

    2022年2月18日,Django 版本已经到了4.0.3 ,这是最新的中文官方文档,网页版的,可以直接本地查看的。网上貌似最新的是 Django 2.1版本的官方文档,做成电子书,Django每个版本差异较大,最好看最新的,相信有关...

    Python库 | django-mako-plus-5.0.15.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:django-mako-plus-5.0.15.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    django-oauth2-server, 在 python 中使用 Django,OAuth2服务器写入.zip

    django-oauth2-server, 在 python 中使用 Django,OAuth2服务器写入 Django OAuth2服务器面向 Django的OAuth2服务器的。 可以以自由地对这里存储库进行 fork 。为 Django 1.9编写的:)授权类型授权代码隐式客户端...

    wagtail-jinja2:Jinja2扩展以支持wagtail上的主要django标签

    这不会使w使用Jinja作为模板后端(cms admin),但允许您在CMS页面中使用Jinja。 安装 pip install wagtail-jinja2 设置扩展 settings.py的示例: # Wagtail is still using django template as to 1.1 JINJA_...

    最强django中文手册

    最强最齐全的Django开发文档,对于很多想从事学习Django Web开发的很多人而言,Django一直没有官方的中文文档是个弊端。而且Django更新较快,国内很多翻译版本都太滞后了。现在小编我告诉大家一个好消息!!  Django...

Global site tag (gtag.js) - Google Analytics