gpt4 book ai didi

python - 将嵌入式 python 与作为字符串传递给 template() 的 SimpleTemplate Engine 一起使用

转载 作者:太空宇宙 更新时间:2023-11-04 03:16:42 27 4
gpt4 key购买 nike

我正在调试一个应用程序并想使用 Bottle SimpleTemplate 来呈现 HTML 和 Python。如果我将模板用作单独的文件 (views/simple.tpl),则 Python 会正确呈现。

如果我尝试将 Python 作为字符串传递,我会得到 NameError("name 'demo' is not defined",)

from bottle import template

text = "debugging"
return template(
"<p>{{text}}</p>" +
"% demo = 'hello world'" +
"<p>{{demo}}</p>",
text=text
)

这可能吗?

最佳答案

嵌入 Python 代码的行必须以 % 开头。问题是您使用的是字符串连接,它不保留换行符。简单地说,该字符串等效于以下行:

<p>{{text}}</p>% demo = 'hello world'<p>{{demo}}</p>

因为 % 不是第一个字符,所以它对 Bottle 没有任何意义。

手动添加换行符:

return template(
"<p>{{text}}</p>\n"
"% demo = 'hello world'\n"
"<p>{{demo}}</p>",
text=text
)

作为旁注,您可以使用 implicit string literal concatenation (如上代码所示)。

关于python - 将嵌入式 python 与作为字符串传递给 template() 的 SimpleTemplate Engine 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36045258/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com