- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在调试一个应用程序并想使用 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/
我们正在尝试基于 bottle 构建一个简单的 Web 应用程序,并使用 SimpleTemplate 模块来模板文件。该站点是使用 Vue.js 构建的。 Bottle 模板语法是{{ }},Vue
我需要在我的 Bottle 应用程序的某些地方格式化一个链接。以前所有的链接都在一个 SimpleTemplate 文件中,我定义了一个如下所示的宏: %def mylink(obj): {{
我该如何处理: ... value="{{thing['attr']}}" ... 作为未定义的事物的''?我试过了 ... value="{{thing['attr'] if node else '
我正在调试一个应用程序并想使用 Bottle SimpleTemplate 来呈现 HTML 和 Python。如果我将模板用作单独的文件 (views/simple.tpl),则 Python 会正
我是一名优秀的程序员,十分优秀!