Jinja2,一个模板引擎超强的Python库!

文摘   2024-10-26 06:17   河南  

玩转Python模板神器 - Jinja2从入门到实战

大家好,我是翔宇风!今天要给大家介绍一个非常实用的Python库 - Jinja2。作为一名Python开发者,如果你想要生成HTML页面、配置文件或者其他文本内容,Jinja2绝对是你的得力助手!

Jinja2是什么?

Jinja2是Python中最流行的模板引擎之一,它可以让我们在预定义的模板中插入变量、条件判断和循环等语法,从而动态生成文本内容。Flask框架就是用Jinja2作为默认的模板引擎。

快速上手

需要安装Jinja2:
pip install jinja2

来看一个最简单的例子:

from jinja2 import Template

# 创建模板
template = Template('Hello {{ name }}!')

# 渲染模板
result = template.render(name='小明')
print(result)  # 输出: Hello 小明!

模板语法大揭秘

  1. 变量

在模板中使用 {{ }} 来表示变量:

from jinja2 import Template

template = Template('我是{{ name }},今年{{ age }}岁')
result = template.render(name='小明', age=18)
print(result)  # 输出: 我是小明,今年18岁
  1. 控制结构

Jinja2支持if判断和for循环:

template_str = '''
{% for student in students %}
    {% if student.score >= 90 %}
        {{ student.name }}是学霸!
    {% else %}
        {{ student.name }}要继续加油!
    {% endif %}
{% endfor %}
'
''

template = Template(template_str)
students = [
    {'name''小明''score': 95},
    {'name''小红''score': 85}
]
print(template.render(students=students))

小贴士:Jinja2的语法很像Python,但是要注意控制语句需要用{% %}包裹,并且要有对应的end语句。

  1. 过滤器

Jinja2提供了很多内置的过滤器,可以对变量进行处理:

template = Template('{{ name|upper }}')  # 转换为大写
print(template.render(name='python'))  # 输出: PYTHON

实战小练习

试试看用Jinja2生成一个简单的HTML页面:

template_str = '''
<html>
<head>
    <title>{{ title }}</title>
</head>
<body>
    <h1>{{ title }}</h1>
    <ul>
    {% for item in items %}
        <li>{{ item }}</li>
    {% endfor %}
    </ul>
</body>
</html>
'
''

template = Template(template_str)
context = {
    'title''我的购物清单',
    'items': ['苹果''香蕉''橙子']
}
html = template.render(context)

Jinja2真的是一个超级强大的模板引擎!我们今天学习了:

基本的变量插入

控制结构(if/for)

过滤器的使用

模板的渲染过程

建议大家在实际项目中多加练习,特别是在做Web开发时,Jinja2绝对能帮你事半功倍!

下次见!记得点赞关注!😊

翔宇风
精彩纷呈,引人入胜。
 最新文章