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表格并保证安全性。除了上述例子中使用的方法,我们还可以使用其他方法来自定义表格样式、添加链接等。根据具体需求,可以进行灵活的定制。
