我尝试使用python中的locals()替换字符串变量,但我可以找到一种方法在字符串中使用%字符而不会出错。这是一个具体的例子:
color = colors_generator() #the function return a color
html = """<html><head>
<style>#square{color:%(color)s;width:100%;height:100%;}</style>
</head> <body> <div id="square"> </div>
</body></html>""" % locals()
print "Content-Type: text/html\n"
print html
结果:TypeError: not enough arguments for format string
问题是 100%中的%字符。我该怎么逃避呢?
答案 0 :(得分:4)
使用%
转义%html = """<html><head>
<style>#square{color:%(color)s;width:100%%;height:100%%;}</style>
</head> <body> <div id="square"> </div>
</body></html>""" % locals()
答案 1 :(得分:1)
Virhilo已经回答了你的直接问题,但如果你发现你正在构建相当大/复杂的模板,那么可能值得查看完整的模板引擎: