我有一个Flask项目,其结构如下:
├── config.py
├── errors
│ ├── __init__.py
│ ├── handlers.py
│ └── templates
│ ├── errors
│ │ ├── 403.html
│ │ ├── 404.html
│ │ └── 500.html
│ └── default_layout.html
├── home
│ ├── __init__.py
│ ├── routes.py
│ └── templates
│ ├── about
│ │ └── general.html
│ └── default_layout.html
├── static
│ └── style.css
└── templates
└── default_layout.html
我的应用程序包含两个蓝图:错误和主页。
有没有办法让我的蓝图中的模板文件扩展具有相同文件名的多个模板文件?我遇到以下导致异常的情况:
1)app / errors / templates / errors / 403.html:
{% extends 'default_layout.html' %}
{% block error_content %}
<div class="content-section">
<h1>404 error</h1>
<p>{{ error }}</p>
</div>
{% endblock error_content %}
2)app / errors / templates / default_layout.html:
{% extends 'default_layout.html' %}
{% block content %}
<div class="content-section">
<h1>NESTED BLOCK</h1>
{% block error_content %}{% endblock %}
</div>
{% endblock content %}
3)app / templates / default_layer.html:
{% block content %}{% endblock %}
我希望1)中引用的default_layout.html
引用2),而2)中引用的default_layout.html
引用3)。
答案 0 :(得分:0)
一种方法是使用蓝图的名称作为范围进一步嵌套模板。例如,
errors/templates/default_layout.html
将成为
errors/templates/errors/default_layout.html
使用它会变成{% extends "errors/default_layout.html" %}