如何在单独的文件中使用 >=2 个块来渲染模板()?

Mor*_*lde 1 python jinja2 flask

由于使用Jinja2块将模板分解为单独的文件,{% block _name_ %}{% endblock %}我想在 上实现它应该相当容易Flask,但我无法理解它。

誓言

我有这个结构:

daddy_template.html
    son.html
    daughter.html
Run Code Online (Sandbox Code Playgroud)

所有模板大致有以下内容:

<!-- daddy_template.html -->
<div id="son">{% block son %}{% endblock %}</div>
<div id="daughter">{% block daughter %}{% endblock %}</div>

<!-- son.html -->
{% extends "daddy_template.html" %}
{% block son %}
<p>Knock, knock</p>
{% endblock %}

<!-- daughter.html -->
{% extends "daddy_template.html" %}
{% block daughter %}
<p>Who is it?</p>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

轮到

我只知道render_template()在 Flask 中准备一个模板并且一次只需要一个模板,所以这省略了除了函数参数中提供的一个块之外的所有内容。

from flask import Flask, render_template
app = Flask(__name__)

@app.route('/')
def daddy():
    return render_template('son.html')
Run Code Online (Sandbox Code Playgroud)

威望

那么你如何拥有你的蛋糕并吃掉它呢?在这种情况下,是否在渲染时同时包含son.html和?daughter.htmldaddy_template.html

djc*_*djc 5

查看include 语句而不是使用块。