将输出列表和变量很好地输入的最佳方法是什么 一个HTML模板?
list = ['a', 'b', 'c']
template = '''<html>
<title>Attributes</title>
- a
- b
- c
</html>'''
有更简单的方法吗?
答案 0 :(得分:5)
你应该看看一些模板引擎。有一个完整的列表here。
在我看来,最受欢迎的是:
例如在jinja2:
import jinja2
template= jinja2.Template("""
<html>
<title>Attributes</title>
<ul>
{% for attr in attrs %}
<li>{{attr}}</li>
{% endfor %}
</ul>
</html>""")
print template.render({'attrs': ['a', 'b', 'c']})
这将打印:
<html>
<title>Attributes</title>
<ul>
<li>a</li>
<li>b</li>
<li>c</li>
</ul>
</html>
注意:这只是一个小例子,理想情况下,模板应该在一个单独的文件中,以保持单独的业务逻辑和表示。
答案 1 :(得分:3)
如果模板引擎对你来说太重了,你可以做类似
的事情list = ['a', 'b', 'c']
# Insert newlines between every element, with a * prepended
inserted_list = '\n'.join(['* ' + x for x in list])
template = '''<html>
<title>Attributes</title>
%s
</html>''' %(inserted_list)
>>> print template
<html>
<title>Attributes</title>
* a
* b
* c
</html>
答案 2 :(得分:0)
HTML不支持空格,意思是:
'\n'.join(x for x in list) #won't work
您需要尝试以下操作。
'<br>'.join(x for x in list)
否则模板就是可行的方法!