下面我将详细讲解“python jinja2模板的使用示例”的完整攻略,包含两个示例。
1. 安装Jinja2
首先,你需要安装Jinja2。如果你使用的是Python3,可以通过如下命令进行安装:
pip3 install jinja2
2. 示例一
假如你有这样一个 hello.html
的模板文件:
<html>
<head>
<title>{{ title }}</title>
</head>
<body>
<h1>Hello, {{ name }}!</h1>
</body>
</html>
下面我们展示如何使用这个模板。首先,你需要在Python代码中导入Jinja2,同时读取并渲染这个模板:
from jinja2 import Template
with open('hello.html') as f:
tmpl = Template(f.read())
result = tmpl.render(title='Hello, World!', name='John')
print(result)
这里,我们首先使用 open
函数读取hello.html文件,然后使用Jinja2的 Template
类构造模板对象,最后使用 render
方法渲染模板,将 title
和 name
两个参数填入模板中。
执行上面的代码后,输出的结果应该如下:
<html>
<head>
<title>Hello, World!</title>
</head>
<body>
<h1>Hello, John!</h1>
</body>
</html>
可以看出, {{ title }}
和 {{ name }}
被渲染成了实际的值。
3. 示例二
下面我们来看一个稍微复杂一些的示例。假如你有这样一个 index.html
的模板文件:
<html>
<head>
<title>{{ title }}</title>
</head>
<body>
<h1>{{ greeting }}</h1>
<ul>
{% for item in items %}
<li>{{ item }}</li>
{% endfor %}
</ul>
</body>
</html>
这次,我们在模板中使用了控制结构,通过 for
循环遍历 items
列表,并将其中的每个元素渲染为一个 <li>
标签。
下面我们在Python代码中定义一个数据源,并且渲染模板:
from jinja2 import Template
with open('index.html') as f:
tmpl = Template(f.read())
data = {
'title': 'My Web App',
'greeting': 'Hello, World!',
'items': [
'Item 1',
'Item 2',
'Item 3'
]
}
result = tmpl.render(**data)
print(result)
这里,我们定义了一个 data
字典作为数据源,包含了模板中需要的所有变量和数据。我们将 data
作为关键字参数传递给 render
方法,并且使用 **
运算符将字典拆分成独立的关键字参数。
渲染结果如下:
<html>
<head>
<title>My Web App</title>
</head>
<body>
<h1>Hello, World!</h1>
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</body>
</html>
可以看出,控制结构和变量插值都被正确渲染。这说明Jinja2在处理复杂模板时非常强大和灵活。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python jinja2模板的使用示例 - Python技术站