В качестве обновления к ответу @ Alex вы можете использовать декоратор Jinja @contextfunction
, чтобы удалить некоторую зависимость от глобальных переменных.Обновленный код будет выглядеть так:
import jinja2
@jinja.contextfunction
def include_file(ctx, name):
env = ctx.environment
return jinja2.Markup(env.loader.get_source(env, name)[0])
def main():
loader = jinja2.PackageLoader(__name__, 'templates')
env = jinja2.Environment(loader=loader)
env.globals['include_file'] = include_file
env.get_template('page.html').render()
if __name__ == '__main__':
print main()
И так же, как и раньше, вызовите его из вашего шаблона как:
{{ include_file('file.txt') }}