将变量传递给Mako模板的好方法是什么?

1 投票
1 回答
1096 浏览
提问于 2025-04-15 16:35

我正在使用Mako的继承功能,把一些公共的页面元素,比如页眉和页脚,放到一个叫“base.mako”的模板里。每个具体的页面控制器会使用自己的模板,这些模板都继承自base.mako。

base.mako需要一组变量,比如,登录用户的名字会显示在所有页面的页眉里。不过,具体的页面控制器负责选择和渲染模板,因此它们也需要把这些变量传递给模板。

我希望所有的页面控制器都不需要知道base模板需要哪些变量。有没有什么好的方法来为这种情况设置base模板的上下文呢?

提前谢谢你们!

1 个回答

0

你有两种面向对象设计的选择来处理你的页面控制器。

一些共同的功能可以通过两种方式来处理。

  • 继承。所有的页面控制器都是一个共同类的子类,这个共同类提供了大家都需要的属性。

  • 委托。所有的页面控制器都在一个流程中,其中某个共同的过程(在页面控制器之前或之后)会加入额外的信息。

你需要选择其中一种。

撰写回答