2024-05-18 05:51:17 发布
网友
turbogears2中是否有类似的django上下文处理器? 在tg1中是stdvar,但在tg2中不再是了。在
解释: 我需要有一些模板标签,在每个页面上,没有明显的声明在每个控制器。在
您有三种可能的解决方案来实现这一点。在
首先,您可以使用tg.tmpl_context,它在每个模板中都是tmpl_context。 您可以填充BaseController.__call__中的变量,以便它们在任何地方都可用。在
tg.tmpl_context
tmpl_context
BaseController.__call__
另一种方法是在app_cfg.py中注册base_config.variable_provider,该函数必须是一个函数,它返回将在任何模板中可用的变量字典。如果存在名称冲突,这些变量将从控制器返回的变量中重写,因此为控制器返回的变量提供默认值是一个好方法。在
app_cfg.py
base_config.variable_provider
否则,在最近的版本中,也可以使用base_config.register_hook内部的base_config.register_hook在系统范围内注册before_render钩子,回调可以附加和重写任何模板参数。在
base_config.register_hook
before_render
我不确定这是否是最好的方法,但您可以将以下内容添加到应用程序中_全球(2):
from genshi.core import Markup self.foo = lambda: Markup("<div>my content here!!!</div>")
然后在模板中:
或者你可以通过ajax请求来完成。。。
您有三种可能的解决方案来实现这一点。在
首先,您可以使用
tg.tmpl_context
,它在每个模板中都是tmpl_context
。 您可以填充BaseController.__call__
中的变量,以便它们在任何地方都可用。在另一种方法是在
app_cfg.py
中注册base_config.variable_provider
,该函数必须是一个函数,它返回将在任何模板中可用的变量字典。如果存在名称冲突,这些变量将从控制器返回的变量中重写,因此为控制器返回的变量提供默认值是一个好方法。在否则,在最近的版本中,也可以使用
base_config.register_hook
内部的base_config.register_hook
在系统范围内注册before_render
钩子,回调可以附加和重写任何模板参数。在我不确定这是否是最好的方法,但您可以将以下内容添加到应用程序中_全球(2):
然后在模板中:
^{pr2}$或者你可以通过ajax请求来完成。。。
相关问题 更多 >
编程相关推荐