📜  jinja 渲染模板到文件 (1)

📅  最后修改于: 2023-12-03 14:43:06.530000             🧑  作者: Mango

Jinja 渲染模板到文件

Jinja是目前广泛使用的Python模板引擎,可以用于生成HTML、XML、JSON、Markdown等各种文本格式的静态文件。本篇介绍如何使用Jinja将模板渲染到文件中。

步骤:

1.安装Jinja

pip install Jinja2

2.编写模板文件

<!-- index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{{title}}</title>
</head>
<body>
    <h1>{{content}}</h1>
</body>
</html>

3.编写渲染脚本

# render.py
from jinja2 import Environment, FileSystemLoader, select_autoescape

def render_template(template_name: str, context: dict, output_file: str) -> None:
    env = Environment(
        loader=FileSystemLoader("./templates"),
        autoescape=select_autoescape(['html', 'xml'])
    )
    template = env.get_template(template_name)
    result = template.render(context)
    with open(output_file, "w") as f:
        f.write(result)

4.运行渲染脚本

# main.py
from render import render_template

context = {"title": "Hello, World!", "content": "Welcome to my blog!"}
render_template("index.html", context, "output.html")

运行后,将会在当前目录下生成一个名为"output.html"的文件,其内容为:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello, World!</title>
</head>
<body>
    <h1>Welcome to my blog!</h1>
</body>
</html>

至此,Jinja渲染模板到文件的步骤已完成。

总结:

Jinja提供了丰富的模板语法和内置函数,可用于生成各种格式的文本文件。使用Jinja的好处是可以将代码和数据分离,提高代码的可维护性和复用性。