2012-07-22 94 views
1

我在路徑中有幾個jinja模板文件,我想渲染它們並將它們寫入文件,我的問題是它們的輸出文件名,如何從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)) 
在這段代碼的輸出文件名

正是神社模板文件名。

回答

2

我已經解決了它,

模板類有一個包含所有模板方法和定義的變量

例如template.module.foo()調用在神社模板您foo的宏模塊屬性。