Turbogears2: django上下文处理器的类比

2024-05-18 05:51:17 发布

您现在位置:Python中文网/ 问答频道 /正文

turbogears2中是否有类似的django上下文处理器? 在tg1中是stdvar,但在tg2中不再是了。在

解释: 我需要有一些模板标签,在每个页面上,没有明显的声明在每个控制器。在


Tags: django模板声明turbogears2tg2页面标签控制器
1条回答
网友
1楼 · 发布于 2024-05-18 05:51:17

您有三种可能的解决方案来实现这一点。在

首先,您可以使用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楼 · 发布于 2024-05-18 05:51:17

我不确定这是否是最好的方法,但您可以将以下内容添加到应用程序中_全球(2):

from genshi.core import Markup
self.foo = lambda: Markup("<div>my content here!!!</div>")

然后在模板中:

^{pr2}$

或者你可以通过ajax请求来完成。。。

相关问题 更多 >