Использование одного и того же имени шаблона несколько раз с Flask и Jinja2 - PullRequest
0 голосов
/ 17 ноября 2018

У меня есть проект 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) приложение / ошибки / шаблоны / ошибки / 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) приложение / ошибки / шаблоны / 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 %}

Я хочу, чтобы ссылки default_layout.html, указанные в 1), ссылались на 2), а ссылки default_layout.htmlв 2) сослаться на 3).

1 Ответ

0 голосов
/ 18 ноября 2018

Один из подходов заключается в дальнейшем вложении шаблонов с использованием имени проекта в качестве области действия. Например.,

errors/templates/default_layout.html

станет

errors/templates/errors/default_layout.html

И использование его станет {% extends "errors/default_layout.html" %}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...