django默认的模板太不灵活,想把一个数字0.15显示成15%都得费不少劲,太不爽!!!

网上查阅了几个模板系统,有Jinja2等等,最后发现mako能够直接支持python的语句,最为灵活,果断选用。

使用过程中碰见的问题不少,记录如下:

1. 调试技巧:如果在mako的模板显示过程中出现问题,django的错误提示就一个字,“错”,剩下的,慢慢查吧,然后我挨个删除,挨个尝试,就一个惨字了得。弄了几个错误之后崩溃了。最后在stackoverflow上面找到了解决办法,代码如下:

from mako.lookup import TemplateLookup
from mako import exceptions
risk_lookup = TemplateLookup(
directories=risk_platform.settings.TEMPLATE_DIRS,
input_encoding='utf-8',
output_encoding='utf-8',
default_filters=['none_empty', 'h', ],
imports=['from risk.views import none_empty'],
) def render_to_response(filename, ctx):
try:
tp = risk_lookup.get_template(filename)
cont = tp.render(**ctx)
return http.HttpResponse(cont)
except :
return http.HttpResponse(exceptions.html_error_template().render())

一旦在render的过程中出现异常,使用mako展示错误的方式来输出。一下天清气朗。

2. moko中的for循环使用的变量会覆盖context中的变量,因此如下的模板代码无法正常运行:

% for name in names:

  <td>${name}</td>

% end for

<tr>${name}</td>

后面的这个${name}就无法获取到context里面的相关变量值了。目前我也没有时间去查阅相关资料了,等有时间了在慢慢看吧。

3. djangomako这个包根本就无法使用,一运行就错了(我的版本是python3.4 django_mako-0.1.3)看了看源代码,就两三行有用的,干脆就不用他这个包了

												

最新文章

  1. a标签不跳转
  2. HtmlAgilityPack组件
  3. selenium 基本的键盘方法
  4. EXCEL工作表保护密码忘记了,如何撤消工作表保护?
  5. 转:Oracle中的rownum不能使用大于&gt;的问题
  6. Visual Studio下SQLite数据库开发环境设置
  7. Xcode HeaderDoc 教程(2)
  8. extjs让按钮可用或者不可用
  9. 限制**类型物料不能输入BOM
  10. Python3.2官方文档翻译--作用域和命名空间
  11. 关于git的ssh-key:解决本地多个ssh-key的问题
  12. OpenGL绘制棱锥,剔除
  13. CYQ.Data 支持WPF相关的数据控件绑定.Net获取iis版本
  14. poj 3168 Barn Expansion 几何yy
  15. MVP框架 – Ted Mosby的软件架构
  16. Linux篇---Grep和正则匹配
  17. django + 阿里云云服务器网站搭建
  18. Can&#39;t read swagger JSON from http://localhost:8080/Test/api-docs
  19. 前端框架VUE----表单输入绑定
  20. 【Mac】WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

热门文章

  1. 札记:android手势识别,MotionEvent
  2. 07. Web大前端时代之:HTML5+CSS3入门系列~H5 地理位置
  3. PowerShell实现批量重命名文件
  4. input[tyle=&quot;file&quot;]样式修改及上传文件名显示
  5. 使用 JavaScript 和 canvas 做精确的像素碰撞检测
  6. Photoshop将普通照片快速制作二次元漫画风格效果
  7. Consul 服务注册与服务发现
  8. 从netty-example分析Netty组件
  9. GPG终极指南(加密/签名)
  10. cocos2dx调用浏览器打开网址