文档
[官方文档] http://jinja.pocoo.org/
[源码地址] https://github.com/pallets/jinja
➜ jinja2Demo tree
.
├── __init__.py
└── templates
└── jinja2.html
1 directory, 3 files
Jinja2 使用一个名为 Environment 的中心对象。这个类的实例用于存储配 置、全局对象,并用于从文件系统或其它位置加载模板。
大多数应用在应用初始化的时候创建一个Environment
对象,并用它来加载模板。
# __init__.py
# -*- coding: UTF-8 -*-
from jinja2 import Environment, PackageLoader
__author__ = 'lpe234'
def main():
env = Environment(loader=PackageLoader('jinja2Demo', package_path='templates'))
# 变量开始/结束标识
env.variable_start_string = '[['
env.variable_end_string = ']]'
# 过滤器
env.filters['xx'] = lambda _: '__'+_+'__'
# 获取模板
template = env.get_template('jinja2.html')
name = 'Hello'
lists = range(5)
# 渲染模板
print template.render(name=name, lists=lists)
pass
if __name__ == '__main__':
main()
# templates/jinja2.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
[[ name | xx ]]
{% for _ in lists %}
[[ _ ]]<br>
{% endfor %}
</body>
</html>
python2.7 ./jinja2Demo/__init__.py
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
__Hello__
0<br>
1<br>
2<br>
3<br>
4<br>
</body>
</html>
Process finished with exit code 0