我有一些数据的Python dict结构,比如N
行,每行包含一些字段,id
,name
包含自由文本,property
包含一些已知的关键字之一。
我想将此dict转换为交互式HTML表格,也就是说,我希望最终将其上传到我的网站,人们可以按名称排序,根据property
的关键字进行过滤,等
现在,其中一个字段是图像地址。我也希望这个表以某种方式包含图像(也许作为缩略图),它将超链接到orig。大小的图像。也就是说,我的网站会显示包含图片的id
,name
,property
以及image thumb
的一些行。
我一般都倾向于使用Python,但其他简单的解决方案也会受到欢迎。
谢谢!
答案 0 :(得分:1)
正如我在评论中告诉你的那样,你必须使用Django。作为介绍,Django附带了一些模板。
从文档中我们知道:
作为一个Web框架,Django需要一种方便的方法来生成HTML 动态。最常见的方法依赖于模板。一个模板 包含所需HTML输出的静态部分以及一些 描述如何插入动态内容的特殊语法。
现在,假设你有一本字典:
data = {
"test1": ['val1', 'val2', 'val3', ],
"test2": ['val1', ],
"test3": ['val1', 'val2', 'val3', 'val4', ],
}
并且您希望它在HTML表格中呈现,您可以执行以下操作:
from django.template import Context, Template
data = {
"test1": ['val1', 'val2', 'val3', ],
"test2": ['val1', ],
"test3": ['val1', 'val2', 'val3', 'val4', ],
}
# we'll need to split the tests from the data
tests = ["test1", "test2", "test3"]
columns = [data[test] for test in tests]
# get the length of the longest column
max_len = len(max(columns, key=len))
for col in columns:
# padding the short columns with None
col += [None,] * (max_len - len(col))
# Then rotate the structure...
rows = [[col[i] for col in columns] for i in range(max_len)]
dj_template ="""
<table>
{# tests #}
<tr>
{% for test in tests %}
<th>{{ test }}</th>
{% endfor %}
</tr>
{# data #}
{% for row in data %}
<tr>
{% for val in row %}
<td>{{ val|default:'' }}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
请在下次提供一些代码作为您的问题,可能会被视为偏离主题