Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Turbogears2:django上下文处理器的模拟_Python_Django_Turbogears_Genshi - Fatal编程技术网

Python Turbogears2:django上下文处理器的模拟

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>") 或者你可以通过

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

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

我不确定这是否是最好的方法,但您可以将以下内容添加到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
inside
app\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对我来说也是新的!