Как насчет этого?
from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('templates'))
template = env.get_template('test.html')
output_from_parsed_template = template.render(foo='Hello World!')
print(output_from_parsed_template)
with open("my_new_file.html", "w") as fh:
fh.write(output_from_parsed_template)
test.html
<h1>{{ foo }}</h1>
вывод
<h1>Hello World!</h1>
Если вы используете фреймворк, такой как Flask, вы можете сделать это внизу своего представления, прежде чем вернуться.
output_from_parsed_template = render_template('test.html', foo="Hello World!")
with open("some_new_file.html", "wb") as f:
f.write(output_from_parsed_template)
return output_from_parsed_template
rb
наwb
.)
нижней части кода отсутствует конец первой строки. Я пытался добавить это, но SO требует, чтобы изменения были> 6 символов (глупое ограничение) ..Вы можете сбросить поток шаблона в файл следующим образом:
Template('Hello {{ name }}!').stream(name='foo').dump('hello.html')
Ссылка: http://jinja.pocoo.org/docs/dev/api/#jinja2.environment.TemplateStream.dump
источник
Итак, после загрузки шаблона вы вызываете render, а затем записываете результат в файл. Оператор with - это менеджер контекста. Внутри отступа у вас есть открытый файл, такой как объект с именем 'f'.
template = jinja_environment.get_template('CommentCreate.html') output = template.render(template_values)) with open('my_new_html_file.html', 'w') as f: f.write(output)
источник