我正在通过以下方式构建一个字符串:
pagination +='<li>''<a href="/main/?page=%(current_link)s'+link+'">%(current)s</a></li>' % \
{'current_link': current_link, 'current': current_link}
在浏览器中查看页面时,文本显示正常,但链接指向“..%(current_link)s ...”。我已经尝试在字符串本身中命名它们'current_link',但这不起作用所以我尝试了上面的方法。
有什么建议吗?
答案 0 :(得分:3)
问题是您已将字符串分开,使%
运算符仅适用于最后一部分。
试试这样:
pagination +='<li><a href="/main/?page=%(current_link)s>%(current)s</a></li>' % \
{'current_link': current_link, 'current': current_link}
或者如果你想要link
变量那样:
pagination +='<li><a href="/main/?page=%(current_link)s%(link)s>%(current)s</a></li>' % \
{'link': link, 'current_link': current_link, 'current': current_link}
答案 1 :(得分:1)
嗯。您正在将连接与+
混合并使用%
格式化,我认为这是运算符优先级的问题:%
绑定比+
强,所以
("%(a)s" + "%(b)s" % { 'a': 'A', 'b': 'B' }) == '%(a)sB'
答案 2 :(得分:0)
不要将填充字符串与没有运算符('foo''bar'
)组合在一起,与+
连接,并使用%
格式化。你只是格式化最后的字符串。