Python 金字塔设置mako.imports不工作
我试图使用该设置来避免在每个模板文件中导入模块 最初,我在每个模板的顶部都有一个模块级块,如:Python 金字塔设置mako.imports不工作,python,pyramid,mako,Python,Pyramid,Mako,我试图使用该设置来避免在每个模板文件中导入模块 最初,我在每个模板的顶部都有一个模块级块,如: <%! import logging %> 这不起作用,因为当我尝试使用它时,模板只是抛出NameError:name“logging”未定义 似乎mako.imports甚至没有被调用,因为设置如下: mako.imports = 'import SpamAndEggs' 不会抛出错误 我使用的是Pyramid 1.3和Mako 0.7.0。好的,所以看看Pyramid生成的
<%!
import logging
%>
这不起作用,因为当我尝试使用它时,模板只是抛出NameError:name“logging”未定义
似乎mako.imports甚至没有被调用,因为设置如下:
mako.imports = 'import SpamAndEggs'
不会抛出错误
我使用的是Pyramid 1.3和Mako 0.7.0。好的,所以看看Pyramid生成的Mako模板代码,它只是逐字输出配置设置中的内容、引号、括号和所有内容
因此,语法必须是:
mako.imports=导入日志记录
将多个导入作为:
mako.imports=导入日志,some.other.module
和不以下任何一项:
mako.imports = 'import logging'
mako.imports = ['import logging', 'some.other.module']
mako.imports = import logging, import some.other.module
最后一个抛出一个mako.exceptions.SyntaxException
,因为它不是有效的Python,但前两个则以静默方式失败,什么也不做,因为它们只是将文本作为一行代码输出
我没有从“Python语句的字符串列表,通常是单独的“导入”行”中推断出这一点(但可能我只是没有正确理解它)
感谢Mike Bayer在Mako上的精彩表演。来自,语法如下:
mako.imports =
import logging
import some.other.module
以换行符分隔的导入语句。我认为文档应该用一个例子来说明这一点,因为Python人的“字符串列表”是完全不同的
多亏了迈克·梅里克尔
mako.imports =
import logging
import some.other.module