文档章节

Jinja2初探

明天以后
 明天以后
发布于 2017/08/07 16:27
字数 282
阅读 17
收藏 0

文档

[官方文档] 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

© 著作权归作者所有

共有 人打赏支持
明天以后
粉丝 71
博文 128
码字总数 85743
作品 0
昌平
程序员
私信 提问
ansible filter_plugins插件实现jinja2自定义filter过滤器

前言: filterplugins是什么? 这个单词拆解下,filter ! 熟悉jinja2模板的人,到知道他是过滤器,可以在模板中以管道的方式用pyhton的代码处理字符串。 ansible模板调用的是jinja2,这个大...

rfyiamcool
2014/07/21
0
0
修改jinja2模板中变量标识符

使用webpy时,修改jinja2变量标识符 重写webpy包中的template.py文件中的render_jinja类. class myrenderjinja: """Rendering interface to Jinja2 Templates Example: render= render_jinja......

yongqing
2014/08/27
0
0
SaltStack实战之配置管理-Jinja2模板

SaltStack实战之配置管理-Jinja2模板 SaltStack实战之配置管理-Jinja2模板 1. Salt yaml配置文件使用Jinja2模板介绍 2. 实战应用 1. Salt yaml配置文件使用Jinja2模板介绍 jinja2官方网站: ...

ygqygq2
2017/06/16
0
0
Django1.10配置Jinja2模板(20161130更新)

Django自动的扩展jinja2模板的功能并不好用,还是使用django-jinja插件比较靠谱。 1、安装Jinja2模块: pip install django-jinja 2、配置settings: INSTALLEDAPPS += ('djangojinja',) TE......

lihuipeng
2016/08/10
0
0
人工智能自动代码生成3---数据库获取代码实现1

我们先从最简单的自动代码生成场景开始,先用不怎么智能的方法来实现这些基本功能。我们在这一节中,将使用Java中的JDBC技术,实现对数据库内容的增删改查操作,同时使用PHP中的Mysqli技术,...

yt7589
2017/03/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

数据库技术-Mysql主从复制与数据备份

数据库技术-Mysql 主从复制的原理: MySQL中数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二进制日志后,其作为master,它的数据库中所有操作都会以“事件”...

须臾之余
昨天
10
0
Git远程仓库——GitHub的使用(一)

Git远程仓库——GitHub的使用(一) 一 、 Git远程仓库 由于你的本地仓库和GitHub仓库之间的传输是通过SSH加密的,所以需要一下设置: 步骤一、 创建SSH key 在用户主目录下,看看有没有.ss...

lwenhao
昨天
2
0
SpringBoot 整合

springBoot 整合模板引擎 SpringBoot 整合Mybatis SpringBoot 整合redis SpringBoot 整合定时任务 SpringBoot 整合拦截器...

细节探索者
昨天
0
0
第二个JAVA应用

第二个JAVA应用 方法一:配置文件: # cd /usr/local/tomcat/conf/# vim server.xml</Host> <Host name="www.wangzb.cc" appBase="/data/wwwroot/www.wangzb.cc" //引用所......

wzb88
昨天
0
0
2019年阿里Java面试必问:JVM与性能优化+Redis+设计模式+分布式

前言 一年之计在于春 金三银四已经要到来,2019的新的开始,作为一个开发人员,你是否面上了自己理想的公司,薪资达到心中理想的高度? 面试:如果不准备充分的面试,完全是浪费时间,更是对...

火力全開
昨天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部