Jinja2:一个纯Python实现的模板引擎

 

屏幕快照 2016-07-25 下午2.26.35

屏幕快照 2016-07-25 下午2.13.13

简介

Jinja2是纯python编写的模板引擎,它和Django类似提供non-XML语法,除此之外还支持内联表达式和一个可选的沙箱环境。Jinja2遵守BSD开源协议。

漂亮的语法

强大的功能

  • 沙箱执行环境。对模板的各个方面进行监测并且拥有显式的白名单和黑名单。这样可以在沙箱中执行不安全的模板。
  • 强大的HTML转义系统来防止XSS跨站攻击。
  • 模板继承使得对所有模板都可以使用同样或者类似的布局。
  • 通过实时编译到python字节码来获得更高的性能。Jinja2会将模板源码在第一次加载时转换为python字节码来获得最佳运行性能。
  • 可选的预编译功能。
  • 通过使用整合模板编译和运行错误到python跟踪器的调试系统使得调试更加简单。
  • 可配置的语法。例如可以重新配置Jinja2使得它更加适配LaTeX或者JavaScript的输出格式。
  • 模板设计帮助器。Jinja2通过组装大量有用的小帮助工具来帮助解决一些日常任务,比如将序列打散来生成多列。

安装

作为python egg安装

从tar包安装

  1. 从 首页 下载最新tar包
  2. 解压tar包
  3. python setup.py install

注:这样安装的前提是你已经安装了setuptools或者distribute工具。

安装开发版本

  1. 安装git
  2. git clone git://github.com/pallets/jinja.git
  3. cd jinja2
  4. ln -s jinja2 /usr/lib/python2.X/site-packages

第4步可以使用python setup.py develop替代来安装开发者版本,这样安装的一个好处是C语言的一些扩展也被编译了。

MarkupSafe依赖

Jinja2 2.7版本依赖于MarkupSafe模块。如果通过pip或者easy_install安装Jinja2,这个模块会被自动安装。

基本的API使用

最常用的创建并渲染模板的方式是通过Template类。但如果你的模板不是从字符串加载而来而是来自文件系统或者其他数据源这种方法并不推荐。

通过创建一个Template实例,可以获得一个新的Template对象,该对象提供一个render()方法,通过传入字典或者关键字参数来扩展模板。这个字典或者关键字参数就是模板所谓的context(上下文)。从实例中可以看出,Jinja2内部使用unicode编码,而且返回值也是一个unicode字符串。因此确定你的应用内部确实使用的unicode编码。

谁在使用?

开发资源

贡献

找到一个bug? 有更好的方法来改进Jinja2? 前往Jinja’s new github 创建一个新的ticket或者fork。如果你仅仅想和开发者对话,访问 IRC channel 或者加入mailinglist

官方网站:http://jinja.pocoo.org/
开源地址:https://github.com/pallets/jinja

1 3 收藏

资源整理者简介:beyondwu

简介还没来得及写 :) 个人主页 · 贡献了14个资源 · 1


直接登录

推荐关注

按分类快速查找

关于资源导航
  • 伯乐在线资源导航收录优秀的工具资源。内容覆盖开发、设计、产品和管理等IT互联网行业相关的领域。目前已经收录 1439 项工具资源。
    推送伯乐头条热点内容微信号:jobbole 分享干货的技术类微信号:iProgrammer