Python 序列化数据为HTML

Python 序列化数据为HTML,序列化的最后一个示例将展示创建HMTL文档的复杂性。这种复杂性来自我们期望提供包含大量上下文信息的完整Web页面。解决该HTML问题的一个方法如下:

import string
data_page = string.Template("""\
<html>
<head><title>Series {title}</title></head>
<body>
<h1>Series{title}</h1>
<table>
<thead><tr><td>x</td><td>y</td></tr></thead>
<tbody>
${rows}
</tbody>
</table>
</body>
</html>
""")

@to_bytes
def serialize_html(series: str, data: List[Pair]) -> str:
    """
    >>> data = [Pair(2,3), Pair(5,7)]
    >>> serialize_html("test", data) #doctest: +ELLIPSIS
b'<html>...<tr><td>2</td><td>3</td></tr>\\n<tr><td>5</td><td>7</td></tr>...
    """
    text = data_page.substitute(
        title=series,
        rows="\n".join(
            "<tr><td>{0.x}</td><td>{0.y}</td></tr>".format(row)
        for row in data)
    )
    return text

该序列化函数包含两部分。第一部分是一个包含基本HTML页面的string.Template()函数。它有两个占位符,使得数据能插入文档中。方法${title}指示了可以插入标题信息的位置,而方法${rows}则指示了可以插入数据行的位置。

该函数使用简单的格式化字符串创建各个数据行。它们拼接成一个更长的字符串,然后被替换至模板中。

虽然对于上述示例这种简单情况是可行的,但是对于更复杂的生成数据集来说就不太理想了。有许多更复杂的模板工具可用于创建HTML页面,它们大都具备在模板中嵌入循环,以及分离初始序列化函数等功能。更多选择见https://wiki.python.org/moin/Templating.

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程