如何在Jinja2模板中包含HTML文件?

我正在为使用Jinja模板的服务器使用Flask微框架。

我有一个家长template.html和孩子们的一些所谓的模板child1.htmlchild2.html,这些孩子有的模板是相当大的HTML文件,我想以某种分裂他们超过我的工作更好的洞察力。

我的main.py脚本内容:

from flask import Flask, request, render_template

app = Flask(__name__)

@app.route('/')

@app.route('/<task>')

def home(task=''):

return render_template('child1.html', task=task)

app.run()

The magic is in template.html

<!DOCTYPE html>

<html>

<head></head>

<body>

<div class="container">

{% block content %}{% endblock %}

</div>

</body>

</html>

魔力在于child1.html:

{% extends 'template.html' %}

{% block content %}

{% if task == 'content1' %}

<!-- include content1.html -->

{% endif %}

{% if task == 'content2' %}

<!-- include content2.html -->

{% endif %}

{% endblock %}

而不是评论:

<!-- include content1.html -->

我有很多html文本,很难跟踪更改并且不犯一些错误,因此很难查找和纠正。

我只想加载content1.html而不是全部写入child1.html

我遇到了这个问题,但是在实施时遇到了问题。

我认为Jinja2可能有一个更好的工具。

注意:上面的代码可能无法正常工作,我只是编写它来解决问题。

回答:

使用jinja2 {% include %}指令。

{% extends 'template.html' %}

{% block content %}

{% if task == 'content1' %}

{% include 'content1.html' %}

{% endif %}

{% if task == 'content2' %}

{% include 'content2.html' %}

{% endif %}

{% endblock %}

这将包括来自正确内容文件的内容。

以上是 如何在Jinja2模板中包含HTML文件? 的全部内容, 来源链接: utcz.com/qa/430163.html

回到顶部