python学习笔记-Day17(jinja2)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习笔记-Day17(jinja2)相关的知识,希望对你有一定的参考价值。

jinja2 是一个python的功能齐全的模板引擎,它有完整的unicode支持,一个可选的集成沙箱执行环境。它速度快,被广泛使用。使用jinja2 至少需要python2.4


特性

    沙箱中执行

    强大的html自动转义系统,保护系统免受跨站脚本攻击(xss)

    模板继承

    及时编译最优的python代码

    可选提前编译模板的时间

    易于调试,异常的的行数直接指向模板中对应的行

    可配置的语法



安装

tar文件安装

    tar fielname.tar.gz

    进入解压后的文件目录

    然后sudo python setup.py install


pip 安装

sudo pip install jinja2


开发版安装

git clone git://github.com/mitsuhiko/jinja2.git

cd jinja2

ln -s jinja2 /usr/lib/python2.X/site-packages


使用方法


>>> from jinja2 import Template

>>> template = Template(‘Hello {{ name }}!‘)

>>> template.render(name=‘John Doe‘)

u‘Hello John Doe!‘



另外一个示例

cat func.py 

#!/usr/bin/env python
# -*- coding:utf-8 -*-
from jinja2 import Template
def index():
    f = open(‘index.html‘)
    result = f.read()
    template = Template(result)
    data = template.render(name=‘John Doe‘, user_list=[‘alex‘, ‘eric‘])
    return data.encode(‘utf-8‘)
newData = index()
print newData


cat index.html 

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <h1>{{name}}</h1>
    <ul>
        {% for item in user_list %}
        <li>{{item}}</li>
        {% endfor %}
    </ul>
</body>
</html>


python func.py 

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <h1>John Doe</h1>
    <ul>
        
        <li>alex</li>
        
        <li>eric</li>
        
    </ul>
</body>
</html>







本文出自 “Will的笔记” 博客,请务必保留此出处http://timesnotes.blog.51cto.com/1079212/1748411

以上是关于python学习笔记-Day17(jinja2)的主要内容,如果未能解决你的问题,请参考以下文章

python学习笔记-Day17 - web框架

python自动化学习笔记之DAY17

Python100天学习笔记Day17 数据结构与算法

Python100天学习笔记Day17 数据结构与算法

python学习day12

Jinja2学习笔记暨官方文档的翻译