@sunsexsurf
IT & creative

Почему не работает наследование в jinja?

Структура проекта:
- файл с питонячим кодом в корне
-- template / template.html
-- includes / years.html

файл template.html
<!doctype html>
<html lang="ru">

<head>
    <title>123</title>
</head>

<body>

    {% block year %}
    {% endblock %}

</body>
</html>


файл years.html
{% extends '../template/template.html' %}
{% block year %}
    {% for i in years %}
        {{ i }}
    {% endfor %}
{% endblock %}


питон:
from jinja2 import Environment, DictLoader, Template, FileSystemLoader
file_loader = FileSystemLoader('includes')
env = Environment(loader=file_loader)
template = env.get_template('years.html')
years_list = [1992, 1993, 1994]
out_render = template.render(years = years_list)
print(out_render)


питон крэшится на добавлении словаря с годами в шаблон и говорит, что template.html найти не может:
TemplateNotFound: ../template/template.html
Подскажите, что я делаю не так?
  • Вопрос задан
  • 314 просмотров
Решения вопроса 1
ademaro
@ademaro
full-stack developer
Добавьте вторую папку что бы использовать в качестве шаблонов:
from jinja2 import Environment, DictLoader, Template, FileSystemLoader
file_loader = FileSystemLoader(['templates', 'includes'])
env = Environment(loader=file_loader)
template = env.get_template('years.html')
years_list = [1992, 1993, 1994]
out_render = template.render(years = years_list)
print(out_render)

а в шаблоне наследуйте просто {% extends 'template.html' %}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы