【发布时间】:2012-09-19 06:28:54
【问题描述】:
我正在使用 Django 创建一个用于记录足球队的网站,我有一个带有 CSS 等的“漂亮”显示,但作为备份/旧学校版本,我试图让代码将信息写入基本的 .使用 rjust、ljust 等格式化文本的 html 文件。在下面的代码中,如果我删除链接代码,并且只显示团队名称的字符串,所有内容都正确排列。一旦我添加了链接的 HTML,尽管列没有对齐并且完全不正常。我做错了什么?
standings = Team.objects.filter(active=True).order_by('-wp')
output += '<pre>\n'
output += '%s %s %s %s\n' % (str('Rk').rjust(3), str('Team').ljust(50), str('W').rjust(2), str('L').rjust(2))
output += '%s %s %s %s\n' % (str('--').rjust(3), str('----').ljust(50), str('-').rjust(2), str('-').rjust(2))
for row in mpi:
the_team = "<a href=\"%s\">%s</a>" % (row.slug, row.name)
output += '%s %s %s %s\n' % (str(row.rank).rjust(3), str(the_team).ljust(50), str(row.won).rjust(2), str(row.lost).rjust(2))
output += '</pre>'
【问题讨论】:
-
您意识到 the_team 变量中的整个锚标记是合理的,而不仅仅是 row.name 的值,对吗?不过,看到意外的输出会有所帮助。
-
对,如果我在输出行中包含团队名称 %s 周围的锚标记,它将包含整行,包括 ljust 添加的空格。
-
您应该考虑对字符串使用
format工具,例如"foo {:>10s}".format("bar")。在文档中阅读它! -
感谢@hochl。我实际上将我的代码修改为下面的示例。我仍然不确定如何在不链接整个字符串和额外空格的情况下获取锚标记。
output += '{:>3} <a href="/ncaa-football/">{:<30}</a> {:>2} {:>2} {:^9} {:^6} ({:>3}) {:<40}\n'.format(row.rank, row.team.name, row.won, row.lost, mpi, sos, row.sos_rank, conference)