如何在Python中动态高效地更新HTML/字符串?

pol*_*ian 1 html python string

目标是在给定“list_header”列表的情况下动态更新 HTML/字符串。

要输入到html列表中的列表

list_header=['Coffee','Tea','Milk']
Run Code Online (Sandbox Code Playgroud)

预定义的 html 模板

html = """
   <tr>
       <th>List of header name:</th>
   </tr>
<ol>

</ol>
"""
Run Code Online (Sandbox Code Playgroud)

预期结果

html = """
   <tr>
       <th>List of header name:</th>
   </tr>
<ol>
  <li>Coffee</li>
  <li>Tea</li>
  <li>Milk</li>
</ol>
"""
Run Code Online (Sandbox Code Playgroud)

我尝试使用如下的查找和附加方法,但它会省略上面的部分

line = '<li> </li>'
index = line.find('</ol>')
output_line = line[:index] + list_header[0] + line[index:]
Run Code Online (Sandbox Code Playgroud)

感谢您提供链接到良好参考资料的帮助。

Pra*_*iel 5

您可以用于jinja此类项目。Jinja设计只是为了帮助您实现这一目标:

\n
# python -m pip install \xe2\x80\x94user Jinja2\n\nfrom jinja2 import Template\n\n\nlist_headers = [\'Coffee\',\'Tea\',\'Milk\']\n\nHTML = \'\'\'\n <tr>\n       <th>List of header name:</th>\n </tr>\n<ol>\n{% for list_header in list_headers %}\n  <li> {{ list_header }} </li>\n{% endfor %}\n</ol>\n\'\'\'\n\ntemplate = Template(HTML)\nres = template.render(list_headers=list_headers)\n\nprint(res)\n
Run Code Online (Sandbox Code Playgroud)\n

在此处阅读Jinja2 的更多内容以熟悉jinja语法。

\n