【发布时间】:2014-06-27 18:04:12
【问题描述】:
是否可以在渲染之前获取 Mako 模板中的变量名称?
from mako.template import Template
bar = Template("${foo}")
# something like:
# >> print bar.fields()
# ['foo']
用例:
我们有配置文件,我们可以通过这些文件指定要在网页上显示的数据库中的元数据。客户端可以选择数百个不同的命名元数据之一。客户端可以配置 N 个插槽,但我们事先不知道特定客户端希望在表单上填写哪些元数据。因为如果在渲染表单时我们需要提前知道,我们需要为这个客户端模板传递哪些变量名。
我们曾想过拥有一个包含所有可能值的一致字典,并在每次都传递它,但这是行不通的,因为新的可用字段经常添加到客户端可以选择的可用元数据的底层池中。
因此,我们希望使用 Mako 来模板化配置文件,但我不知道如何确定模板中的字段值,以便我可以构建一个完整的 Context 传递给模板。
【问题讨论】:
-
嘿。我的回答对你有帮助吗?