我正在使用 Flask 微型框架作为我的服务器,它使用 Jinja 模板。
我有一个名为 template.html
的父模板和一些子模板,分别称为 child1.html
和 child2.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()
简化版的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可能有更好的工具来解决这个问题。
注意:上面的代码可能无法正常工作,我只是写它来说明问题。