我在使用Jinja模板的服務器上使用Flask microframework。我有父級template.html和一些childs child1.html,child2.html。其中一些孩子是非常大的HTML文件,我想以某種方式將它們分開以便更好地理解我的工作。在Jinja2模板中包含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中。我遇到了這個問題Include another HTML file in a HTML file,但是我在執行時遇到問題。我認爲Jinja2可能有更好的工具。
注意。 上面的代碼可能工作不正常,我只是寫它來解決問題。
非常感謝。我會將這個問題標記爲我接受的問題,因爲它顯示瞭如何使用它的示例(儘管在這種情況下它非常簡單)。 – quapka