最佳答案
我使用 Flask 微框架为我的服务器使用金贾模板。
我有一个家长 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可能有更好的工具。
注意: 上面的代码可能无法正常工作,我只是编写它来说明这个问题。