【问题标题】:Good way to pass variables for common elements to Mako templates?将通用元素的变量传递给 Mako 模板的好方法?
【发布时间】:2010-12-22 06:00:22
【问题描述】:

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

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

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

提前致谢!

【问题讨论】:

    标签: python mako


    【解决方案1】:

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

    常见的特征可以通过两种方式处理。

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

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

    你必须选择一个。

    【讨论】:

    • 当我第一次阅读您的回答时,我以为我需要更具体的建议。经过进一步的思考,我意识到你所说的实际上更有帮助,需要我退后一步,从更一般的角度考虑这个问题。谢谢!
    • @jgarbers:很抱歉让您思考,但您遇到了管理常用功能的“标准问题”。
    猜你喜欢
    • 2011-05-08
    • 2011-12-26
    • 2013-05-14
    • 1970-01-01
    • 2012-10-14
    • 2021-09-27
    • 2017-11-10
    • 2016-02-16
    • 2011-04-05
    相关资源
    最近更新 更多