2

我在一个路径中有几个 jinja 模板文件,我想渲染它们并将它们写入一个文件,我的问题是它们的输出文件名,

是否可以在 jinja 模板中定义一个函数来返回和准备模板输出文件名,并从 python 代码中调用它并检索它的值?

这是我的代码:

#in here inputPath is jinja templates path
for root, dirs, files in os.walk(inputPath):
    for file in files:
        fPath = root[len(inputPath) + 1:]
        newPath = (fPath + "/" if fPath else '') + file
        template = env.get_template(newPath)
        oPath = os.path.join(outputPath, fPath)
        try:
            os.makedirs(oPath)
        except:
            pass
        oPath=os.path.join(oPath,file)
        with codecs.open(oPath,'w', "utf-8") as f:
            f.write(template.render(projectname=projectName, mainxmlpath=mainXamlPath))

在此代码中输出文件名正是 jinja 模板文件名。

4

1 回答 1

2

我已经解决了

模板类具有包含所有模板方法和定义变量的模块属性

例如在 jinja 模板中template.module.foo()调用你的宏。foo

于 2012-07-22T12:21:29.917 回答