前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jinja2初探

Jinja2初探

作者头像
lpe234
发布2020-07-27 17:22:42
5360
发布2020-07-27 17:22:42
举报
文章被收录于专栏:若是烟花若是烟花

文档

[官方文档] http://jinja.pocoo.org/

[源码地址] https://github.com/pallets/jinja

示例

代码语言:javascript
复制
➜  jinja2Demo tree
.
├── __init__.py
└── templates
    └── jinja2.html

1 directory, 3 files

Jinja2 使用一个名为 Environment 的中心对象。这个类的实例用于存储配 置、全局对象,并用于从文件系统或其它位置加载模板。

大多数应用在应用初始化的时候创建一个Environment对象,并用它来加载模板。

具体代码

# __init__.py

代码语言:javascript
复制
# -*- 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

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

[[ name | xx ]]

{% for _ in lists %}
    [[ _ ]]<br>
{% endfor %}
</body>
</html>

输出

代码语言:javascript
复制
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
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 示例
    • 具体代码
      • 输出
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档