如何在Jinja2模板中包含HTML文件?
我正在为使用Jinja模板的服务器使用Flask微框架。
我有一个家长template.html
和孩子们的一些所谓的模板child1.html
和child2.html
,这些孩子有的模板是相当大的HTML文件,我想以某种分裂他们超过我的工作更好的洞察力。
我的main.py
脚本内容:
from flask import Flask, request, render_templateapp = 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