问题的小版本:“我需要一个用于 python 或程序的库(Linux 首选),它接收图像的 url 列表并为我提供表格的 hmtl(可能易于配置(行和外观))
问题的长版本:我有一个带有图像url列表的数组,我想制作一个表格(我不知道这是否是最佳做法,但我认为这是最简单的)。我不在乎拇指是否与大拇指相同(只是被迫变小)。而且我不需要将图像复制到任何地方。
我使用以下代码( d= ["http://.....jpg","http://.....jpg","http://.....jpg","http ://.....jpg"]):
def stupidtable(d):
d = list(set(d))
antes=' <tr> <td><a href="'
dp11='"><img src="'
dp12= '" width="100%" /></a></td> <td><a href="'
dp21= '"><img src="'
dp22='" width="100%" /></a></td>'
bb=['<table border="0"> ']
ii=len( d)
i=0
while i<ii-1:
bb.append(antes)
bb.append(d[i])
bb.append(dp11)
bb.append(d[i])
bb.append(dp12)
bb.append(d[i+1])
bb.append(dp21)
bb.append(d[i+1])
bb.append(dp22)
i=i+2
return bb
(我知道代码是阴暗的,如果它是奇数,它会跳过最后一个......但它是咖啡因推动的代码,我只需要完成它......我没有什么值得骄傲的:)我知道一定有一种更好的方法(而且更漂亮……因为这看起来真的很难看),以及一种我可以指定列数和其他选项的方法。
我找不到适合我的案例的画廊生成器(我测试的所有文件都将文件复制到新目录)。我应该学习模板语言吗?这值得么?
或者我应该使用HTML 生成器吗?
还是我应该研究更好的 HTML 编码?
如果你遇到我的问题,你会怎么做?
这是我想出的解决方案(在采用了 MatToufoutu 先生的代码之后):
from jinja2 import Template
my_template = Template("""
<html>
<style type="text/css">
img {border: none;}
</style>
<body>
<table border="0" cellpadding="0" and cellspacing="0">
<tr>
{% for url in urls %}
<td><a href="{{ url }}"><img width="100%" src="{{ url }}"/></td>
{% if loop.index is divisibleby cols %}
</tr><tr>
{% endif %}
{% endfor %}
</tr>
</table>
""")
cols=3
urls =["./a.jpg","./a.jpg","./a.jpg","./a.jpg","./a.jpg","./a.jpg","./a.jpg"]
html = my_template.render(cols=cols,urls=urls)