在web.py模板中使用内置的'str'函数:全局名称未找到

2 投票
2 回答
1099 浏览
提问于 2025-04-16 09:11

我花了太多时间在搞清楚这个问题:

我在给一个模板传递一个数字,想把它变成字符串,像这样:

$def with (num)

$(str(num))

或者

$str(num)

这样会出现一个错误,提示找不到全局名称“str”。

编辑与解决方案:我这么做是为了能引用“img[0-n].png”。如果传入的num是一个数字,你可以直接用“img$(num).png”来表示这个字符串。根本不需要把num显式地转换成字符串。

2 个回答

0

你也可以用"%d"这个方式把整数转换成字符串,比如:

stringified_int="%d" % n

或者用你提问时的模板风格:

$ filename="img[0-%d]" % n

我不确定这个在python2中是否有效,但在python3中是可以的。

3

将字符串作为全局变量传递给渲染对象:

render = web.template.render('templates', globals={ 'str': str })

撰写回答