编程语言
首页 > 编程语言> > python – Mako:将变量传递给基本和子模板

python – Mako:将变量传递给基本和子模板

作者:互联网

目标:在基本模板和子模板中访问myargs.目前我只能在一个或另一个中访问它们.

呼叫:

child.render(myargs={'a':2, b:'5'})

基础摘录:

<%page args="myargs=None, **kwargs"/>
% if myargs['a']:
    a is: ${myargs['a']}
% endif
${self.body(myargs=myargs)}

儿童节选版本1:

<%page args="myargs=None, **kwargs"/>
<%inherit file="/base.html" />

% if myargs['b']:
    b is: ${myargs['b']}
% endif

儿童节选版本2:

<%page args="myargs=None, **kwargs"/>
<%inherit file="/base.html" />
<%def name="body()">
% if myargs['b']:
    b is: ${myargs['b']}
% endif
</%def>

使用子版本1,子投掷错误,因为未定义myargs,并且base工作.
使用子版本2,基础抛出错误,因为未定义myargs,并且子项工作.

这些不是确切的例子,但这是我的困境的本质.如果有人可以解释如何通过可靠的继承链传递变量.不幸的是,Mako的文档似乎跳过了这一部分.

解决方法:

很好的解决方案大声笑.

事实证明,“页面参数”对于这个原因没有用,事实上他们通过在其中一个页面上用“无”覆盖“myargs”来创建问题.可以直接从两个文件访问关键字变量,而无需使用“page args”.

标签:python,templates,mako
来源: https://codeday.me/bug/20190630/1336495.html