转:Django下使用mako模板
| Django1.2下使用mako模板Type: 技术相关 - Posted at: 2010/07/27 23:53 | ||||||||
| 看完了mako的文档,寻思着把这的模板改成mako的,顺便熟悉下mako的语法。 在django1.2中官方增加了对第三方模板的支持(见:http://docs.djangoproject.com/en/dev/ref/templates/api/#using-an-alternative-template-language),琢磨了一会后开始配置django下的mako。 修改项目下的__init__.py文件,重写掉mako.template下的Template类。 
 然后在项目路径下新建一个文件django_mako.py。 
 然后修改settings.py,使用刚定义好的loader。 
 
 | ||||||||
Mako模板引擎安装及在Django中的集成
操作系统:Linux Cent OS 5 / Max OS X 10.6 snow leopard
相关环境:Python 2.6.4 ; Django 1.1.1
相关环境:Python 2.6.4 ; Django 1.1.1
安装版本:Mako 0.2.5 ; django-mako 0.1.3
Mako是用python语言开发的开源模板引擎,功能很强大,使用起来也很方便,下面介绍一下安装步骤:
- 下载:请到官方网站http://www.makotemplates.org/,或者点击链接下载http://www.makotemplates.org/downloads/Mako-0.2.5.tar.gz
 
- 解压:tar zxvf Mako-*
 
- 进入文件目录,运行以下命令:
 sudo python setup.py install
 
- 安装完成,到你的python安装目录下的site-packages目录里检查Mako-0.2.5-py2.6.egg文件是否存在,如果存在即代表安装成功了
 
 
- 测试程序Helloword
 1)运行命令python进入python运行环境
 
 2)输入以下python代码进行测试
 from mako.template import Template 3)如果你在屏幕上看到了hello, sand!的输出代表你安装成功了
 mytemplate = Template("hello, ${name}!")
 print mytemplate.render(name="sand")
Django集成Mako:(django-mako插件方法)
在Django中使用Mako需要单独安装一个模块django-mako
- 下载:请到官方网站http://code.google.com/p/django-mako/或者点击链接下载http://pypi.python.org/packages/source/d/django-mako/django-mako-0.1.3.tar.gz#md5=9dccd42c3ea9d004088cc692dd327678
 或者 easy_install django-mako
 
- 使用方法:
 1)在你django项目的settings.py中的MIDDLEWARE_CLASSES里增加一项djangomako.middleware.MakoMiddleware例:MIDDLEWARE_CLASSES = (2)添加django方法,例:
 'django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'djangomako.middleware.MakoMiddleware',
 )
 from djangomako.shortcuts import render_to_response3)到django中映射url请求/hello到上面添加的方法
 def hello_view(request):
 return render_to_response('hello.html', {'name':'sand'})
 
 4)添加模板文件hello.html内容如下:
 hello ${name}!
 
 5)启动你的django项目,浏览器访问一下http://yourhostname/hello,看下是不是看到返回的hello sand!
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号