Код: Выделить всё
basic.py
Код: Выделить всё
#!/usr/bin/env python3
from jinja2 import Environment, PackageLoader, select_autoescape
env = Environment(
loader=PackageLoader('basic'),
autoescape=select_autoescape()
)
print(env.get_template('basic_template.md').render({'version': 'version123', 'date': 'some-date'}))
Код: Выделить всё
.
|__ templates/
| |
| |__ basic_template.md
|
|__ basic.py
При каждом запуске весь скрипт выполняется дважды. Это вызвано переменной env, в частности PackageLoader('basic'). Я почти уверен, что когда он загружается, он запускает скрипт Basic.py (снова) - из Basic.py.
Если я создам пустой фиктивный скрипт и используйте его в PackageLoader, мой скрипт работает нормально (отрисовывает шаблон только один раз):
Код: Выделить всё
.
|__ templates/
| |
| |__ basic_template.md
|
|__ basic.py
|
|__ other_script.py
Код: Выделить всё
#!/usr/bin/env python3
from jinja2 import Environment, PackageLoader, select_autoescape
env = Environment(
loader=PackageLoader('other_script'),
autoescape=select_autoescape()
)
print(env.get_template('basic_template.md').render({'version': 'version123', 'date': 'some-date'}))
Как же правильно этого добиться? Я не хочу, чтобы где-то лежал случайный пустой файл, если он мне не нужен. Как мне визуализировать шаблон без запуска PackageLoader моего скрипта во второй раз?
Подробнее здесь: https://stackoverflow.com/questions/792 ... 2-template