Не могу получить шаблон на jinja2 - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь использовать jinja2 в качестве шаблона для языка, похожего на xml.

Приведенный ниже код является примером этого языка с базовым шаблоном jinja2.Этот шаблон вызывает дочерний шаблон.

Базовый шаблон:

<?xml version="1.0" encoding="UTF-8"?> 
<!-- An NCL SlideShow example with embedded Jinja2 template -->
<ncl id="slideShow">
    <head>
        <connectorBase>
            <importBase documentURI="connectorBase.ncl" alias="conBase"/>
        </connectorBase>
        <regionBase>
            <region id="main" width="100%" height="100%" zIndex="1"/>
        </regionBase>
        <descriptorBase>
            <descriptor id="ImageDes" region="main"/>
        </descriptorBase>
    </head>
    <body>
        <port id="startSlideShow" component="image1"/>
        {% block medias %}
        {% endblock %}
    </body>
</ncl>

Дочерний шаблон:

{% extends "slide_show.j2.ncl" %}
{% block media %}
    <media id="image1" src="media/WinterSun.jpg" 
descriptor="ImageDes"/> 
{% endblock media %}

Скод Python, я пытаюсь загрузить файл базового шаблона.

if __name__ == "__main__":
    env = Environment(
        loader=FileSystemLoader('/templates/slide_show.j2'),
        autoescape=select_autoescape(['ncl', 'xml'])
    )

    template = env.get_template('slide_show.j2')

Однако я получаю это исключение ниже:

jinja2.exceptions.TemplateNotFound: slide_show.j2

1 Ответ

0 голосов
/ 16 мая 2019

Обнаружено, что FyleSystemLoader должен получать полный путь к папке, а не родственник.Их документация не проясняет.

loader = FileSystemLoader('fullpath/to/file')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...