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

2024-04-20 09:02:54 发布

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

我正在调试一个应用程序,并希望使用瓶子SimpleTemplate来呈现HTML和Python。如果我将模板用作单独的文件(视图/简单.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
)

这可能吗?在


Tags: 文件字符串textname视图模板应用程序瓶子
1条回答
网友
1楼 · 发布于 2024-04-20 09:02:54

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

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

由于%不是第一个字符,它对瓶子来说没有任何意义。

手动添加新行:

^{pr2}$

另外,您可以使用implicit string literal concatenation(如上面的代码所示)。

相关问题 更多 >