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

时间:2009-12-02 01:03:59

标签: python mako

我正在使用Mako的继承功能将常见的页面元素(如页眉和页脚)分解为“base.mako”模板。特定于页面的控制器使用自己的模板继承base.mako。

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

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

提前致谢!

1 个答案:

答案 0 :(得分:0)

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

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

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

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

你必须选一个。