Python 将公共元素的变量传递给Mako模板的好方法?

Python 将公共元素的变量传递给Mako模板的好方法?,python,mako,Python,Mako,我使用Mako的继承特性将常见页面元素(如页眉和页脚)分解成“base.Mako”模板。特定于页面的控制器使用自己的模板,这些模板继承base.mako base.mako需要一组变量——例如,登录用户的名称会出现在所有页面的标题中。但是,选择和呈现模板的是单个页面控制器,因此负责向模板传递变量 我希望所有这些页面控制器不必知道基本模板在其上下文中需要什么。在这种情况下,为基础模板建立上下文的好方法是什么 提前谢谢 页面控制器有两种OO设计选择 常见功能可以通过两种方式处理 继承权。所有页面控

我使用Mako的继承特性将常见页面元素(如页眉和页脚)分解成“base.Mako”模板。特定于页面的控制器使用自己的模板,这些模板继承base.mako

base.mako需要一组变量——例如,登录用户的名称会出现在所有页面的标题中。但是,选择和呈现模板的是单个页面控制器,因此负责向模板传递变量

我希望所有这些页面控制器不必知道基本模板在其上下文中需要什么。在这种情况下,为基础模板建立上下文的好方法是什么


提前谢谢

页面控制器有两种OO设计选择

常见功能可以通过两种方式处理

  • 继承权。所有页面控制器都是提供公共属性的公共类的子类

  • 代表团。所有页面控制器都是管道的一部分,其中一些公共进程(在页面控制器之前或之后)在附加信息中折叠


你必须选一个。

当我第一次读到你的答案时,我想我需要更具体的建议。经过进一步思考,我意识到你所说的实际上更有帮助,这要求我退一步,从更一般的角度思考这个问题。谢谢大家!@jgarbers:很抱歉让你这么想,但是你在管理公共特性方面遇到了“标准问题”。