在web.py模板中使用内置的'str'函数:全局名称未找到
我花了太多时间在搞清楚这个问题:
我在给一个模板传递一个数字,想把它变成字符串,像这样:
$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 })