在Pweave temp中使用全局变量

2024-09-30 14:22:11 发布

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

查看pweavehere的文档,似乎可以通过设置returnglobals变量来访问调用程序在模板内生成的任何数据。在

有没有可能反其道而行之?,即是否让模板引用调用脚本中的全局变量?在

我的用例是,首先从SQL数据库中提取一些数据,然后使用该数据调用pweave.pweave()来填充模板。目前我是通过编写一个中间文件,然后在模板的前导码中加载这个文件来实现的。我只想把它作为全球范围的一部分来传递。我尝试在模板中声明一个变量global,但这似乎不起作用;我一直得到异常NameError。在


Tags: 文件数据文档程序脚本模板数据库sql
1条回答
网友
1楼 · 发布于 2024-09-30 14:22:11

可按如下方式进行:

在调用脚本中:

from pweave import Pweb
Pweb.globals = { "foo" : "bar" } # This creates a global var `foo` with value 'bar'
w = Pweb("inputfile.tex")        # Generate a Pweb class. We can't just call `pweave()`
w.weave()                        # Equivalent of `pweave()`

在纹理模板中:

^{pr2}$

它将打印“foo的值是bar”。在

使用奇怪字典的原因是代码使用以下调用来计算代码:

exec compiled in Pweb.globals

您可以在Python Documentation.中获取更多信息

相关问题 更多 >