如何在Django模板中使用换行符显示列表中的所有元素?
例如,带有一个列表
ls = ['bin', 'boot', 'data', 'data2']
我想以
bin
boot
data
data2
我试过了:
'\n'.join(ls)
这会返回每个单词的空格:
b i n b o o t d a t a d a t a 2
我的views.py中的相关代码:
result1 = subprocess.Popen(['ls', '/home/zurelsoft/R'], stdout=subprocess.PIPE).communicate()[0]
result = ''.join(result1)
return render_to_response('thanks.html', {'res':result, 'res1':command}, context_instance=RequestContext(request))
模板的相应部分:
<td>{{ res }} </td>
答案 0 :(得分:3)
您可以使用newline (\n)
加入: -
'\n'.join(ls); // This will only work for list of strings.
或只是使用for loop
迭代您的列表,并打印每个元素: -
for elem in ls:
print elem
答案 1 :(得分:3)
修改视图以使用splitlines()
函数将输出拆分为行列表:
def myview(request):
result = subprocess.Popen(['ls', '/home/zurelsoft/R'], stdout=subprocess.PIPE).communicate()[0].splitlines()
return render_to_response('thanks.html', {'res':result, 'res1':command}, context_instance=RequestContext(request))
然后使用模板中的join过滤器将列表中的每个元素与HTML换行标记<br />
分开:
<td>{{ res|join:"<br/>" }}</td>
答案 2 :(得分:2)
'\n'.join(ls)
"\n"
是一个特殊字符,意思是“换行符”。
答案 3 :(得分:2)
如果res是一个列表,那么你可以遍历列表并输出自己标记中的每个元素。
{% for r in res %}
<td>{{ r }}</td>
{% endfor %}
答案 4 :(得分:0)
>>> out=reduce(lambda x, y: x+y+'\n', ls, "" )
>>> print out
a
b
c
d
e
join
调用reduce来累积结果。
答案 5 :(得分:0)
尝试:
'\n'.join(ls)
它给出了一个列表,其中的元素用“下一行”分隔。在你的第一个例子中你试过''这是一个空的标志。
答案 6 :(得分:0)
for i in ls:
print "%s"%i
这将为您提供所需的输出。