python列表和变量到html模板

时间:2012-01-16 18:19:40

标签: python template-engine

将输出列表和变量很好地输入的最佳方法是什么 一个HTML模板?

list = ['a', 'b', 'c']

template = '''<html>
<title>Attributes</title>
- a
- b
- c
</html>'''

有更简单的方法吗?

3 个答案:

答案 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)

否则模板就是可行的方法!