欢迎访问宙启技术站
智能推送

Python中通过format_html()函数动态生成HTML表格的方法

发布时间:2023-12-26 11:43:09

在Python中,我们可以使用Django模板的format_html()函数来动态生成HTML表格。format_html()函数类似于Python中的字符串格式化函数format(),但是它会自动转义HTML标签,以防止跨站脚本(XSS)攻击。

下面是一个使用format_html()函数动态生成HTML表格的例子:

from django.utils.html import format_html

def generate_table(data):
    # 创建表头
    headers = ['姓名', '年龄', '职业']
    header_html = '<tr>{}</tr>'.format(''.join(['<th>{}</th>'.format(header) for header in headers]))

    # 创建表格内容
    rows_html = ''
    for row in data:
        row_html = '<tr>{}</tr>'.format(''.join(['<td>{}</td>'.format(item) for item in row]))
        rows_html += row_html

    # 生成完整的HTML表格
    table_html = '<table>{}</table>'.format(format_html('{}{}', header_html, rows_html))

    return table_html

# 数据
data = [
    ['张三', 25, '工程师'],
    ['李四', 30, '设计师'],
    ['王五', 35, '销售员']
]

# 生成表格
table = generate_table(data)
print(table)

运行上述代码,将会生成如下的HTML表格:

<table>
    <tr>
        <th>姓名</th>
        <th>年龄</th>
        <th>职业</th>
    </tr>
    <tr>
        <td>张三</td>
        <td>25</td>
        <td>工程师</td>
    </tr>
    <tr>
        <td>李四</td>
        <td>30</td>
        <td>设计师</td>
    </tr>
    <tr>
        <td>王五</td>
        <td>35</td>
        <td>销售员</td>
    </tr>
</table>

通过format_html()函数,我们可以在Python中动态生成HTML表格并保证安全性。除了上述例子中使用的方法,我们还可以使用其他方法来自定义表格样式、添加链接等。根据具体需求,可以进行灵活的定制。