Python Turbogears2:django上下文处理器的模拟
turbogears2中是否有django上下文处理器的类似物? 在tg1中是STDVAR,但在tg2中不再是了 解释:Python Turbogears2:django上下文处理器的模拟,python,django,turbogears,genshi,Python,Django,Turbogears,Genshi,turbogears2中是否有django上下文处理器的类似物? 在tg1中是STDVAR,但在tg2中不再是了 解释: 我需要在每个页面上都有一些模板标签,每个控制器中都没有明显的声明。我不确定这是否是最好的方法,但您可以将以下内容添加到app_globals.Global: from genshi.core import Markup self.foo = lambda: Markup("<div>my content here!!!</div>") 或者你可以通过
我需要在每个页面上都有一些模板标签,每个控制器中都没有明显的声明。我不确定这是否是最好的方法,但您可以将以下内容添加到app_globals.Global:
from genshi.core import Markup
self.foo = lambda: Markup("<div>my content here!!!</div>")
或者你可以通过ajax请求来完成…我不确定这是否是最好的方式,但你可以在app_globals.Global中添加以下内容:
from genshi.core import Markup
self.foo = lambda: Markup("<div>my content here!!!</div>")
或者您可以通过ajax请求来实现这一点……您有三种可能的解决方案来实现这一点 首先,您可以使用
tg.tmpl\u context
,它在每个模板中都作为tmpl\u context
提供。
您可以在BaseController中填充变量。\uuuu调用\uuuu
,以便它们在任何地方都可用
另一种方法是在
app\u cfg.py
中注册base\u config.variable\u provider
,它必须是一个函数,用于返回任何模板中可用的变量字典。如果存在名称冲突,这些变量将从控制器返回的变量重写,因此为控制器返回的变量提供默认值是一种好方法
否则,在最新版本中,也可以使用
base\u config.register\u hook
insideapp\u cfg.py
在渲染前在系统范围内注册。回调可以附加和覆盖任何模板参数。您有三种可能的解决方案来实现这一点
首先,您可以使用tg.tmpl\u context
,它在每个模板中都作为tmpl\u context
提供。
您可以在BaseController中填充变量。\uuuu调用\uuuu
,以便它们在任何地方都可用
另一种方法是在app\u cfg.py
中注册base\u config.variable\u provider
,它必须是一个函数,用于返回任何模板中可用的变量字典。如果存在名称冲突,这些变量将从控制器返回的变量重写,因此为控制器返回的变量提供默认值是一种好方法
否则,在最新版本中,也可以在渲染前使用base\u config注册,在app\u cfg.py
中注册钩子。回调可以附加和覆盖任何模板参数。base\u config.variable\u provider
对我来说也是新的base\u config.variable\u provider对我来说也是新的!