如何使用 web.py 编写自定义渲染器

How do I write custom renderers with web.py

作为 python 和 web.py 的新手,我不确定我想要的是否可行,但我正在尝试为我的模板分配唯一的渲染器,以便我的模板无法使用一个特定的文件结构。

所以我有: code.py

Main = web.template.render('templates/', globals=common_globals)
Section1 = web.template.render('templates/Section1/', globals=common_globals)

稍后在引用这些时,

这个有效:

class index:
def GET(self):
    vPage = '0'
    vLevel = '0'
    vSection = '0'
    return Main.Layout(vPage, vLevel, vSection)

但事实并非如此:

class Section1:
def GET(self):
    vPage = '0'
    vLevel = '1'
    vSection = '1'
    return Section1.Layout(vPage, vLevel, vSection)

任何关于这是否可能或它如何工作的建议都会很好。

我发现这个问题在我的问题中没有得到解答。

我认为问题出在 Layout.html,除了全零之外的任何东西都不起作用,因为变量默认为零。

不确定出现问题时的确切版本是什么,但 Layout.html 的工作版本正在使用类似的东西:

$def with (vPage, vLevel, vDivision)
$:getNavigationHeader()

Univeersal.py有

def getNavigationHeader():
    vResult = ''
    
    vResult += '<h4>'
    vResult += 'Navigation'
    vResult += '</h4>'
    
    return vResult

所有方法都有相似的模式。